Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Hahler d4006ab1bf Fix s:init_python
Just check for `has('python3')` / `has('python')`.

Fixes https://github.com/davidhalter/jedi-vim/commit/72a2643f7c0e6f895b7bf61d2b180c42b143aa7b#r28922063.
2018-05-21 23:37:14 +02:00
Daniel Hahler ed8153ef2b Update submodule pythonx/parso 579146b...6f385bd
* pythonx/parso 579146b...6f385bd (7):
      > Not testing Python 3.3 anymore on travis. It seems to be broken
      > Add a changelog for 0.2.1
      > Push the version
      > The diff parser was slighly off with prefixes, fixes #1121
      > A better repr for the endmarker
      > Merge branch 'master' of github.com:davidhalter/parso
      > Fix a prefix issue with error leafs.
2018-05-21 23:35:42 +02:00
Daniel Hahler f07ff6a535 Fix flake8 W605: invalid escape sequence '\{w,d}' 2018-05-10 22:40:58 +02:00
Daniel Hahler d75aaa470e Improve jedi_vim.get_environment
- cache current environment
- s/jedi.get_python_environment/jedi.get_system_environment: the former
  does not exist (renamed in https://github.com/davidhalter/jedi/commit/336087f)
- improve error display
2018-05-09 16:04:47 +02:00
Daniel Hahler 56eb0f6d63 Improve display_debug_info 2018-05-09 16:04:47 +02:00
Daniel Hahler 7894b38c0c tests: move .cache to build, rename test/_utils.vim 2018-04-19 21:55:19 +02:00
Daniel Hahler 1c3078e9f9 get_script: additional_dynamic_modules: add only listed buffers
Unlisted buffers might come e.g. from `set viminfo+=%`, and Jedi would
crash on them.

This could additionally check for them to be readable, but this should
be handled in Jedi itself anyway.
2018-04-17 23:55:30 +02:00
Daniel Hahler 79b332a3c6 Update submodule pythonx/jedi 02f238c...bd7c65d
* pythonx/jedi 02f238c...bd7c65d (413):
      > Finally fix all the get_system_environment issues
      > Fix a test
      > There's really no bin/activate needed for an environment to work
      > Document get_sys_path and change the signature of get_system_environment a bit
      > Rework the time cache.
      > Cache default environment
      > Require parso 0.2.0 at least
      > Set a release date
      > Don't install the latest pip version anymore in appveyor
      > Fix some references
      > Mention Virtualenv support in readme and features
      > Title case for Mänu :)
      > Better overview over functions in the documentation
      > A small docs correction
      > Remove the old static analysis stuff. It was never really used
      > Fix a lot of old docs code that doesn't exist anymore
      > Remove the old parser documentation (that's now part of parso)
      > Don't call it the plugin API anymore, that's confusing
      > Reorder some functions
      > Adda  lot of environment documentation to sphinx
      > find_python_environments -> find_system_environments
      > A small refactoring
      > Remove from_executable, were not really using it, yet.
      > For the second time in a row it's called creationflags not creation_flags
      > Refactor something small
      > Remove an unnecessary else
      > CREATE_NO_WINDOW was introduced in Python 3.7 and didn't exist before
      > The SameEnvironment should not load by default if it's a portable
      > Do binary comparisons to get virtualenvs working and not just venvs
      > Use the correct parameter name for creation flags
      > Add a way to generalize Popen
      > Check the windows environments in a better way
      > Fix some issues with the latest changes
      > DefaultEnvironment -> SameEnvironment
      > Better docs for Environment
      > Some docstrings
      > Make the Environment clearly non-public
      > Make some names public
      > Make sure Windows environments are safe
      > Fix the module_name issue again
      > Write a test for #1079 to avoid a regression in the future.
      > Cleanup some of the module cache stuff
      > Do not cache unimportable compiled module (#1079)
      > Merge branch 'master' of github.com:davidhalter/jedi
      > Multiple inheritance completion in Python 2 did not work
      > Give the run.py script an environment parameter
      > Fix an import
      > Merge the environment changes for Windows
      > Better tests for venvs
      > Write a test for venvs
      > Obviously Python 3 syntax cannot be used in Python 2
      > Update the changelog about f-strings
      > Use the latest parso version from master.
      > Better goto definition for fstrings
      > Fix an issue around the new grammar
      > Fix some fstring issues for now
      > Make a few modifications to always use the latest environment available.
      > Better tests for fstrings
      > With the changes in parso, f-strings are now completable
      > With the changes in parso, f-strings are now completable
      > Fix lambda dynamic param searches, fixes #1070
      > Cleanup the namespace lookups so that it also works for Python 3.7
      > Add a note about the fixed Windows tests in the changelog
      > Add micbou to AUTHORS
      > Add a badge for AppVeyor. Running tests for Windows
      > Add comment explaining why test_versions is disabled on Windows
      > Add JEDI_TEST_ENVIRONMENT_EXECUTABLE for AppVeyor
      > Add AppVeyor configuration
      > Improve venv_and_pths test
      > Properly raise broken pipe exception
      > Remove SourceLair from products, because it's a paid product
      > Add a note to the readme.
      > Fix another windows issue
      > Merge branch 'master' of github.com:davidhalter/jedi
      > Merge the windows fixes
      > Some code cleanup
      > Fix another error that surfaced in pandas
      > Fix an issue with docstrings that contain errors
      > Upgrade the wx widgets paths
      > Somehow forgot about subscriptlist. Just ignore those for now.
      > Fix the first issue in #1010
      > colorama should always color, even if it's not a shell
      > os.path.join completion speed test is sometimes slow, so give it a bit more of time
      > Fix some code_lines issues
      > Remove stdout/stderr from subprocesses (redirected to /dev/null)
      > Add the module_path again
      > Clean up the namedtuple test for #1060
      > All modules now have a code_lines attribute, see #1062
      > The release date for 0.12.0 should not be set, yet. See #1061.
      > And now remove a pep0484 function that is no longer needed
      > Some more code to a function
      > More rewriting of the pep0484 logic
      > Start moving some of the pep0484 comment code around
      > Cleanup some instance stuff
      > Better docs for funciton annotations
      > Fix an error in param comments
      > Catch parser errors instead of error recovery when splitting param comments
      > Merge branch 'function_comment' of https://github.com/wilfred/jedi into mypy-comments
      > Fix a few version issues in tests
      > Use inspect.Parameter.kind for better differentiation between param types
      > Fix REPL completion param name completion
      > Add keyword argument test for #292
      > Fix an interpreter test in Python 2
      > Clean up zombie subprocesses, fixes #1048
      > Fix an issue around __dir__ in the interpreter
      > Fix doctest for replstartup
      > Fix shell completion issues and documentation
      > Merge branch 'master' of github.com:davidhalter/jedi
      > Fix issues with default parameters in functions and classes
      > Correct mistakes of lambda names
      > eval_element -> eval_node
      > Use the correct class for params when used in names. Fixes #1006
      > Get rid of a regex warning, where escaping was not properly used in a normal string
      > Get rid of the imp library import in Python3 to avoid warnings, fixes #1001
      > Don't need the tests from #122
      > Refactor the namespace package tests
      > Add a failing test for nested PEP420 namespace packages
      > Include __init__.py files in search for the project directory, fixes #773
      > Add pytest cache to gitignore
      > Improve some documentation/a failing doctest
      > Fix the recursion error with globals
      > Always pop nodes in recursion detector
      > Globals should be looked up with the same priority as other defined nodes.
      > fix set.append syntax error
      > Add a few bits to the changelog
      > Autocompletion in comments should at least not fail
      > Fix the last async issue
      > Fix a few numpydocs tests
      > Fix some more await things
      > Fix a yield from test
      > AbstractIterableMixin -> IterableMixin
      > Support generator returns when used with yield from.
      > Show in a test that something doesn't work properly around async analysis
      > A few documentation improvements
      > Try to make the whole Builtin overwriting more abstract
      > Fix a small remaining issue in Python 2
      > Reorder tests to make the async stuff pass on all python versions
      > Fix for all python versions
      > Getting more edget cases work in 3.6 for async
      > Fix an issue with async for
      > Use the await method properly and just use it instead of some crazy things
      > Refactor the way builtins can be overwritten by jedi's own contexts
      > Move all the asynchronous contexts to a separate module
      > Fix the merge issues. Now async stuff should at least partially work
      > Merge the async branch
      > Get rid of an unused import
      > Add the name always to the script module
      > Add the travere_parents function to a utility directory
      > Fix Python 2 old-school relative imports
      > Use the project path as a prefix, because many times it's used as a higher priority than other stuff
      > Move the buildout_project stuff to a separate examples folder
      > Rename of buildout stuff
      > Small rename
      > Use generators instead of complicated return of lists
      > Some more sys path corrections.
      > Generalize the use of smart import paths
      > Better handling of smart sys path
      > Some simplifications
      > Add comments to implicit namespaces and fix some minor things.
      > Merge the implicit namespace improvement (pkgutils.itermodules modification)
      > Relative imports should be working again even when used in more special occasions. Fixes #973
      > parent_module is not needed for loading modules
      > Try to avoid CachedMetaClass for modules
      > DOn't check the parser cache, that's parso's responsibility
      > Better module loading
      > Try to put all module loading in one place including namespace packages
      > Unify load_module access
      > Prepare a test to eventually solve a relative import problem
      > Add a module cache that has a bit more capabilites
      > print_to_stderr needs to be used with one argument
      > Print errors that happen when importing certain objects
      > Use unicode literals, to avoid potential issues
      > Merge branch 'master' of github.com:davidhalter/jedi
      > Fix some more dict.get/dict.values stuff
      > Implememnt dict.values for FakeDict to avoid a recursion error. Fixes #1014.
      > Add better error reporting
      > Use a better string
      > Add better debugging for an assert, see also #1010
      > Make some things clearer about lazy contexts
      > Finding the autocompletion stack is a bit more complicated than I initially thought
      > Move the ahead of time tests to the pep0526 file
      > Fix an issue where a default value was wrongly used
      > Update the ahead of time tests
      > Fix the last remaining issues with ahead of time annotations, see #982
      > Fix a bug related to a wrong parametrization at one point
      > Merge branch 'master' of https://github.com/johannesmik/jedi
      > Force unicode on django paths
      > Forgot to add the examples folder
      > Fix a goto_assignments issue with a better internal API
      > Merge remote-tracking branch 'origin/master' into virtualenv
      > Disable predefined name analysis (if stmts) for all non-analysis tasks
      > Remove something that obviously never happened
      > Reorder some open flags for Python 2
      > inspect.signature throws weird errors sometimes, just make it a bit simpler
      > Fix the implicit namespace test
      > Undo most of the namespace changes and use module again
      > Differentiate between namespace and module as a type
      > Use Scripts for virtualenvs instead of bin for windows
      > Refactor django path support
      > Fix project path finding
      > Add a repr for Project
      > Use the PathFinder, because the FileFinder doesn't work without suffixes
      > Create the importer stuff Python2.7 and 3.3
      > Trying to use the import machinery to import jedi/parso in python3.4+
      > Better reporting of internal errors
      > Better error handling for subprocesses
      > Another merge with master
      > Get rid of a cwd to tmpdir, because with the subprocess it doesn't behave the same depending on which tests you run first
      > Hopefully the last merge with master
      > Merge with master again
      > Merge with master
      > Get rid of some potential issues when using pandas interactively
      > Clarity
      > Remove the get_default_project caching
      > Add a comment about why the project is None in the subprocess
      > evaluate.project doesn't exist anymore. Eliminated code that used it
      > At the moment, don't allow projects as an input to script
      > Remove the old project
      > Make the new project API fully work in tests
      > Try to migrate to the new project API
      > Refactor to make configuratios of sys paths easier
      > Use the evaluate.project sys path stuff for api.project
      > Cache the default project
      > A possible introduction for projects
      > Check for safe and unsafe environments when searching for them
      > Sith still used NotFoundError which doesn't exist anymore in jedi
      > Ignore pypy in travis for now
      > A path to ignore in coveragerc was wrong
      > Allowing the cov tests did not properly work. Trying again.
      > Somehow previously removed the allowed failurs of TOXENV=cov
      > Try to put env variables on one line
      > Coverage was unfortunately excluded
      > Merge with master
      > Add a comment to refactoring that it's not in active development
      > Change coveragerc a bit
      > Use Python3.4 for coverage.
      > Correct the issue about has_zlib
      > Move the zip tests to the environment
      > Only execute the zipimport tests fully if zlib is available for the environment Python.
      > Some tests that involved jedi were actually a bit wrong and only worked in certain environments.
      > Skip some 3.3 tests for travis
      > Skipping was done wrong
      > Try a bit more if modifying the PATH is now possible.
      > A comparison was wrong
      > A new version of the travis install script
      > Try to use the virtual env that was defined in the VIRTUAL_ENV variable, if possible.
      > If a subprocess gets killed by an OOM killer or whatever it should respawn and raise an InternalError
      > Merge Subprocess and CompiledSubprocess
      > Try to recover from errors that are happening in subprocesses
      > Move the default environment around
      > More travis trying
      > Better debugging for travis
      > Forgot to add the executable bit to the travis installer.
      > Experiment with travis and installing packages differently
      > The tags should be annotated if possible
      > Remove 2.6 from travis
      > Correct the travis file
      > Some refactoring to finally get tests working with py27 and 3 environments
      > Use the parser to check for certain namedtuple features
      > Use unicode strings in test to pass some tests in Python 2
      > Use Script everywhere where cwd_at is used, otherwise Python 2.7 is annoying
      > The given sys_path gets converted to unicode now in py2
      > Try to avoid the pth tests not working because of the created virtualenv in tox
      > Test if virtualenvs and pth files work
      > Move the module name searching to the subprocess
      > Move the last test out of test_regressions and delete the file
      > Move most of the regression tests into other test files
      > Cleanup test_regression tests
      > Move test_integration_keywrod to test_api/test_keyword
      > Cleanup the docstring tests
      > More test_evaluate Script fixtures
      > stdlib fixture conversions
      > More Script fixture conversions in test_evaluate
      > Migrate parso integration to script fixture
      > Use Script in more places
      > Use the Script fixture more generally
      > Differentiate between different Python versions in a specific test
      > Start replacing Script calls with a fixture
      > Monkeypatch the Unpickler in Python3.3
      > Try to pass the environment variable for JEDI_TEST_ENVIRONMENT to pytest over tox
      > Correct the two last unicode issues
      > Some repr went crazy
      > Make it more clear for debugging where dynamic search ended
      > Fix pep0484 comments
      > Better display of descriptors
      > Remove some of the last py27 errors that were caused in combination with 3.6
      > Forgot to cast a map to a list
      > Fixing more py27 stuff
      > More unicode literals
      > Use force_unicode for all sys paths
      > Add a print_to_stderr function in compatibility
      > Some more small improvements for Python 2
      > There were a few bugs in the previous commit
      > Use unicode in way more cases
      > Use unicode always for getting special objects
      > Skip the correct tests
      > Always use the parser of the environment
      > Try to test on travis with different jedi test environment variables
      > Try adding more automated tests to travis
      > Fix potential issues with py2 analysis
      > Check for bytes and unicode in dicts for Python 2
      > Eliminate is_py3 usages
      > Don't use python_version directly on evaluator anymore
      > Use unicode always in getattr
      > Fix an issue with the new behavior of special methods
      > Fix some more py36 to py27 issues
      > Refactor some things regarding Python 2 support
      > Also don't cast do a string for other names
      > Casting to str is not necessary
      > Skip tests according to the current environment
      > Remove unused keyword code
      > Do more comparisons in the subprocess
      > Use unicode in compiled access
      > Remove unused code
      > Refactor allowed_getattr_callback a bit to not raise random errors.
      > The default of one function was not actually used
      > The string_name of a Name should always be unicode
      > Refactor a bit and force unicode in some places and use an appropriate function name for it
      > Fix a test fail because of the unicode changes
      > The environment selection had a bug
      > More unicode conversions
      > Don't use getattr, use the abstractions
      > More unicode conversions
      > Avoid execution of Jedi in test setup
      > Start using a lot more unicode literals for Python 2
      > Make it possible to explicitly state the version in pytest for different envs
      > Use unicode sys paths always
      > Don't cast bytes to strings when unpickling
      > By default enable cross Python version tests in tox
      > Skip more tests if it's necessary.
      > Move the import logic to the subprocess
      > Move even more import stuff to a separate function
      > Move some import parts around to refactor it
      > Make ImplicitNamespaceContext a bit cleaner
      > Change two tests that were written in a strange way
      > Add a way to skip typing tests in non default environments
      > Use better error messages for import errors
      > Start using the new virtualenv code
      > Start using the correct parser for each environment
      > Add a way to specify environments in tox
      > Fix sys_path propagation for builtins load_module
      > A small refactoring
      > Merge branch 'master' into virtualenv
      > evaluate/docstrings.py
      > Don't import numpydoc in the beginning
      > Ignore the build directory for pytest
      > Refactor environments a bit
      > Make it possible to get the right version parser for a certain environment
      > api.virtualenv -> api.environment
      > DefaultEnvironment -> get_default_environment
      > Better support for searching python environments
      > Add an optimization around compiled dir()
      > Fix a potential issue in evaluate/stdlib
      > Cache the subprocess results
      > Remove unit test class from speed tests
      > Make get_repr static in access.
      > There was a bug in creating modules in a subprocess
      > Fix the Python 2.7 tests
      > Don't try to pickle ellipsis
      > Ignore __main__ modules
      > Use builtins_module instead of BUILTINS
      > Don't use the pickler modification anymore. That doesn't work in other python versions and was in general a bit hard to do
      > Remove the last test failures.
      > Get the subprocess mostly working
      > Don't use the create function anymore in compiled
      > Use even more subprocess accesses
      > Use the subprocess access to create acceses
      > Use access handles everywhere
      > Create a way of accessing access objects through a subprocess
      > Use a class instead of a dict in get_special_objects
      > Move get_special_object
      > Move load_module a bit around
      > Move another usage of create to builtin_from_name
      > Use sys.modules instead of __import__
      > Remove unused code
      > Start creating access objects in a different way
      > Use create_simple_object for a lot of use cases
      > Move some of the compiled.create calls to compiled.builtin_from_name
      > Move some stuff from compiled to context
      > Remove stuff from CompiledObject that didn't belong there and wasn't used
      > create_from_access -> _create_from_access
      > Refactor a bit more and remove the parent_context parameter from create_from_access
      > Isolate fake stuff a bit more
      > Simplify an if
      > Rewrite bases
      > Use create only for non access objects
      > Some simplification of _create_from_access
      > Remove the old now unused fake code
      > Fake context python code is now not the base for a lot of things anymore. It just gets executed.
      > Rename SelfNameFilter to SelfAttributeFilter
      > Simplify one if statement
      > Refactor LazyInstanceName -> SelfName
      > Fix all tests except fake docstring stuff
      > Fix a slice test with a better helper function
      > Fix a few more tests
      > Creating objects works now a bit better but is a huge mess.
      > Get a lot of tests passing
      > Make params work with access
      > Add an access abstraction (only array tests work, yet)
      > The check if we should add type completions is now a bit more obvious
      > Eliminate CompiledObject.type
      > Make some faked things private
      > Cleanup some compiled stuff.
      > Progress in executing builtin stuff in submodules.
      > Exceptions now also work over the subprocess.
      > Finally got compiled_objects and the access to them working
      > Progress when working with evaluators
      > Make the subprocesses work and return the right sys paths for the different versions
      > Make it possible to connect to a subprocess to get the sys path
      > Subprocess progress
      > Use types instead of special objects (see also #988)
      > Some subprocess progress
      > virtualenv progress
2018-04-17 23:42:11 +02:00
Daniel Hahler 24a0369d0f Update submodule pythonx/parso 2ca629a...579146b
* pythonx/parso 2ca629a...579146b (22):
      > Don't test python 2.6 in tox by default, because the newer pip versions don't support it anymore
      > Set a release date
      > Fix whitespace issues with prefixes
      > Use proper leafs for fstring start/end
      > Fix a Python 2 related issue.
      > Forgot to delete another print. WTF I'm tired
      > Unfortunately forgot to delete a print
      > Start to write a changelog for 0.2.0
      > Merge branch 'fstrings'
      > A comparison was slightly off
      > Ignore the pytest cache
      > Fix an error message change in Python 3.7
      > Fix an issue in the diff parser about endmarker newlines
      > Remove the copyright for good
      > Remove copyright years from documentation. (Closes: #25)
      > Fix typo: containes→contains
      > tox: use older pytest only for py26/py33
      > Merge branch 'master' of github.com:davidhalter/parso
      > Don't use a newer pytest version
      > The tags should be annotated if possible
      > Bump version for the next release
      > Use 3.7-dev not 3.7 for travis
2018-04-17 23:42:11 +02:00
Daniel Hahler d430570fd0 pythonx/jedi_vim: flake8 fixes 2018-04-17 23:26:22 +02:00
Daniel Hahler 79c6172be7 Update .gitignore
- add build/ (used in Makefile)
- use .pytest-cache instead of .cache for newer pytest
2018-04-17 23:25:48 +02:00
Daniel Hahler 72c1a332d2 jedi#show_documentation: do not use quotes around bufname 2017-09-29 18:36:04 +02:00
Daniel Hahler 0c6a2b7737 README: improve FAQ for slowness, add deoplete-jedi
Ref: https://github.com/davidhalter/jedi/issues/910#issuecomment-322731875

[ci skip]
2017-08-16 22:08:59 +02:00
Daniel Hahler 60bdff8eea Move Python code for jedi#debug_info into pythonx
This allows vimlparser to parse the vim file again, and it is more
convenient to have it in a real Python file anyway.

Small refactoring and minor text changes included.
2017-08-09 23:59:52 +02:00
Daniel Hahler ddaec5652b Lint fixes 2017-08-09 00:13:55 +02:00
Daniel Hahler 163a0b5db1 Use Vim's pythonx mechanism
Move jedi_vim.py and the jedi submodule into pythonx, which gets added
to Vim's internal sys.path.  While jedi cannot be imported directly from
there, it still makes sense for consistency.
2017-08-08 18:58:54 +02:00
Daniel Hahler cfadac7f22 jedi#debug_info: try/catch failures from s:init_python()
This is relevant for when using `:JediDebuginfo` in a broken setup,
where the call to `jedi#init_python()` in the autoload file throws an
error already (but `jedi#debug_info` is defined/loaded before already).
2017-08-08 17:28:29 +02:00
Daniel Hahler 82661d515b Fix restoring alternate terminal with completeopt redirection
Fixes https://github.com/davidhalter/jedi-vim/issues/721.
2017-08-07 20:34:10 +02:00
Daniel Hahler a46ea1a1eb Refactor completeopt handling
Temporarily set &completeopt before triggering automatic completion,
instead of handling different settings afterwards.
`g:jedi#popup_select_first` is used to use `noinsert` instead of
`noselect`.

Fixes https://github.com/davidhalter/jedi-vim/issues/516.
Fixes https://github.com/davidhalter/jedi-vim/issues/706.
2017-08-07 19:48:53 +02:00
Daniel Hahler a2cf2291da Inline Python init script
Fixes https://github.com/davidhalter/jedi-vim/issues/726.
2017-08-06 21:57:10 +02:00
Daniel Hahler dc7b6228b2 Rename initialize.py to jedi_vim_init.py
Ref: https://github.com/davidhalter/jedi-vim/issues/726#issuecomment-320505021.
2017-08-06 17:04:28 +02:00
Daniel Hahler 20312dcca8 JediDebugInfo: skip newline with no non-default settings 2017-08-06 15:08:11 +02:00
Daniel Hahler c11b38cb48 s:init_python: use setup_py_version instead of force_py_version 2017-08-06 15:07:12 +02:00
Daniel Hahler f1d9708f7c jedi#setup_py_version: check if init script is readable
Ref: https://github.com/davidhalter/jedi-vim/issues/726.
2017-08-06 14:48:09 +02:00
Daniel Hahler 6411de0cd1 auto_vim_configuration: improve check for changed completeopt setting
The user might want to use the default actually.
2017-06-10 12:38:33 +02:00
Daniel Hahler e2d79c6434 popup_on_dot: document that it needs completions_enabled
It would be ignored already with completions_enabled=0.
This documents it and makes the default follow it.
2017-06-03 20:49:14 +02:00
Daniel Hahler eef60e056a JediDebugInfo: settings: display full name 2017-04-19 23:53:11 +02:00
Daniel Hahler c1e279cab7 Update Jedi to 0.10.2 2017-04-06 20:13:28 +02:00
Daniel Hahler 2ee9ec64d3 Improve GitHub issue template and JediDebugInfo 2017-03-01 23:52:55 +01:00
Daniel Hahler 682f37792d Move Travis targets to Makefile
This allows for calling them easily locally.
2017-02-22 11:36:01 +01:00
Daniel Hahler b885e10e0d Make jedi#debug_info more robust
Fixes https://github.com/davidhalter/jedi-vim/issues/675.
2017-02-15 12:14:47 +01:00
Daniel Hahler 8cf616b088 Correctly fix return value of jedi#complete_opened (#664)
Fixes https://github.com/davidhalter/jedi-vim/issues/663.
Fixes https://github.com/davidhalter/jedi-vim/issues/667.
2017-01-31 11:12:25 +01:00
Daniel Hahler 63ecc1dbd7 Add omnifunc/completeopt to jedi#debug_info 2017-01-31 10:54:33 +01:00
Daniel Hahler 702da51cbe Remove obsolete s:jedi_changedtick and fix style
It became obsolete in 794af5b, but setting it was not removed then.
2017-01-27 18:47:48 +01:00
Daniel Hahler 3582fa6bc2 jedi#debug_info: output non-default settings 2017-01-25 21:49:39 +01:00
Daniel Hahler f99d86073b jedi#debug_info: add Jedi's sys_path
Ref: https://github.com/davidhalter/jedi/issues/828
2017-01-14 20:26:11 +01:00
Daniel Hahler 636d393114 jedi#debug_info: check that PythonJedi can be called 2017-01-14 20:25:18 +01:00
Daniel Hahler 8243015479 Update jedi submodule to current master
Comparison: https://github.com/davidhalter/jedi/compare/995a6531225ba0b65e1ff863d97e5404d989047b...2ba78ab725f1e02dfef8bc50b0204cf656e8ee23.
2016-11-16 13:42:24 +01:00
Daniel Hahler 12db7ad364 Add JediClearCache command
This can be used to work around issues like
https://github.com/davidhalter/jedi/issues/784.
2016-10-06 19:15:52 +02:00
Daniel Hahler d86039ea89 Hook into Neovim's :CheckHealth with jedi#debug_info
See https://github.com/neovim/neovim/blob/master/runtime/doc/pi_health.txt.
2016-09-25 18:11:06 +02:00
Daniel Hahler b32b731767 Reset python init status when autoload/jedi.vim is resourced 2016-09-25 18:02:44 +02:00
Daniel Hahler b3f7f3c0b5 fixup! fixup! Add an ISSUE_TEMPLATE file for GitHub 2016-08-17 12:25:38 +02:00
Daniel Hahler 8753bf2e16 fixup! Add an ISSUE_TEMPLATE file for GitHub 2016-08-17 12:24:05 +02:00
Daniel Hahler f0c63f1172 Do not set the '`' mark in goto
This was meant as a hack to make the jumplist work (7520290), but it
works without it.  Maybe the underlying code to go to the definition has
been changed/improved.
Tested both in Vim (7.4.2143) and Neovim.
2016-08-16 00:52:27 +02:00
Daniel Hahler 02c2de1c51 Add an ISSUE_TEMPLATE file for GitHub 2016-08-16 00:52:17 +02:00
Daniel Hahler ba0b44b65d echo_highlight: cast msg to str
This helps to avoid errors with incomplete traceback/exception details
when using it with e.g. `echo_highlight(dir(jedi))`.
2016-08-03 11:19:11 +02:00
Daniel Hahler 369284a6bc README: enhance Installation section 2016-08-03 11:18:41 +02:00
Daniel Hahler 3882c5dd32 Improve error message when the jedi module fails to load
Fixes https://github.com/davidhalter/jedi-vim/issues/560.
2016-08-03 11:08:30 +02:00
Daniel Hahler 19ad3063d9 Make initialize.py more robust
Ref: https://github.com/davidhalter/jedi-vim/issues/574
2016-05-28 20:46:02 +02:00
Daniel Hahler 75e9141111 Cast integers with vim_eval
This makes it clearer/more strict altogether and is future-proof in the
sense that `vim.eval` might return integers for numbers in Vim after all.

See #553 for a very noisy discussion of what led to this.
Although it might be a regression in neovim-python after all it is good
to be on the safe side.

The bonus here is that we get "notified" in case of a option that is
expected to be an integer is a string instead.

Fixes https://github.com/davidhalter/jedi-vim/issues/553.
2016-04-08 14:37:44 +02:00
Daniel Hahler 0f7b743b4e Clarify arguments with _catch_exception
The whole int/string conversion with `vim.eval` is confusing enough, use
a boolean for `is_eval`.
2016-04-06 17:22:47 +02:00
Daniel Hahler 48ad42de86 minor: improve error msg with invalid use_splits_not_buffers setting
Ref: https://github.com/davidhalter/jedi-vim/issues/553
2016-04-06 14:01:03 +02:00
Daniel Hahler f08abefa31 jedi#smart_auto_mappings: use \m with search() for magic
With `nomagic` being set (not recommended, but might happen), the
pattern would not work.
This patch sets `\m` explicitly.
2016-03-18 23:16:07 +01:00
Daniel Hahler cdfb7a5b4f initialize.py: catch and handle any exception when import jedi_vim
This adds the traceback to it, which then will be displayed with
`v:exception` in the Vim part.
2016-03-18 23:08:49 +01:00
Daniel Hahler de793216f5 minor: move code out of 'try' block in jedi#setup_py_version 2016-03-18 23:07:43 +01:00
Daniel Hahler 6b8d900b05 Use echoerr in jedi#init_python
This will abort the script, instead of finishing there only.
2016-03-18 23:06:43 +01:00
Daniel Hahler df39189578 Fix no_jedi_warning: display actual error
Never really worked as intended in 676b378.
Ref: https://github.com/davidhalter/jedi-vim/issues/460
2016-03-18 23:05:07 +01:00
Daniel Hahler 9af06424fb doc/jedi-vim.txt: retab with expandtab
Fixes https://github.com/davidhalter/jedi-vim/issues/437.
Closes https://github.com/davidhalter/jedi-vim/pull/487.
2015-10-26 23:53:55 +01:00
Daniel Hahler 267df8b3da Improve use_tag_stack-hack: use context managers, short 'tags'
Use a NamedTemporaryFile context manager, which removes the temporary
file again, and use it as the only entry for the 'tags' setting to
improve lookup performance.
2015-10-19 18:29:54 +02:00
Daniel Hahler 005cb5225f Use string.ascii_lowercase instead of string.lowercase
Fixes https://github.com/davidhalter/jedi-vim/issues/478.
Closes https://github.com/davidhalter/jedi-vim/pull/480.
2015-10-18 22:14:31 +02:00
Daniel Hahler 431a0b11e5 Handle parenthesis with show_call_signatures' cache
After `o`, call signatures should show up after `abs(`.
2015-10-18 21:22:11 +02:00
Daniel Hahler 9a258c74f5 Merge branch 'wilywampa-callsig_columns'
Truncate command line call signature as described in #474 when the full
signature is too long to display.

Closes https://github.com/davidhalter/jedi-vim/issues/474.
Closes https://github.com/davidhalter/jedi-vim/pull/475.
2015-10-18 21:16:48 +02:00
Daniel Hahler 5c868b9a1f Use utf8 ellipsis char instead of 3 dots 2015-10-18 21:16:37 +02:00
Daniel Hahler e38981fc4f Invalidate show_call_signatures_delay on InsertEnter
Followup to e241cf87fd.
Ref: https://github.com/davidhalter/jedi-vim/pull/420.
Ref: https://github.com/davidhalter/jedi-vim/pull/475#issuecomment-149013542.
2015-10-18 16:07:09 +02:00
Daniel Hahler 253eb5102c CONTRIBUTING.md: request :version and :JediDebugInfo output
Also add sections, and fix style instructions.

[ci skip]
2015-10-08 17:30:35 +02:00
Daniel Hahler 9ec2fb44b0 smart_auto_mappings: look for from only at the start of a line
Fixes https://github.com/davidhalter/jedi-vim/issues/469.
Closes https://github.com/davidhalter/jedi-vim/pull/470.
2015-10-06 01:44:26 +02:00
Daniel Hahler e241cf87fd Conditionally skip calls to jedi_vim.show_call_signatures
Skip calls to `jedi_vim.show_call_signatures` if the (position of the) current
function's argument did not change (by means of comma positions before
and after the cursor).

Ref: https://github.com/davidhalter/jedi-vim/pull/420
2015-10-03 15:43:39 +02:00
Daniel Hahler 6b96313930 Add show_call_signatures_delay option
This will use CursorHoldI instead of CursorMovedI for displaying call
signatures, with a delay of 500ms by default.

This greatly enhances the experience with slow call signatures while typing
(depending on how fast Jedi is for the given context).
2015-09-10 11:55:04 +02:00
Daniel Hahler afc02a3621 Wrap jedi#configure_call_signatures in augroup 2015-09-10 11:55:03 +02:00
Daniel Hahler 676b37812b Pass ImportError to no_jedi_warning and display it there
Ref: https://github.com/davidhalter/jedi-vim/issues/460
2015-09-08 14:33:40 +02:00
Daniel Hahler 3f259c2a9e Followup to 0703494: use <silent> with <C-R> mapping
Without this, the mapping/function will be displayed on Vim's cmdline.
2015-08-20 00:07:27 +02:00
Daniel Hahler 83e62d56ba Add jedi#reinit_python
This is meant to be used in case you want to re-init the Python version
used by jedi-vim, without restarting Vim.

I had this laying around.. it might be better to just export
`s:init_python` as `jedi#init_python`?!
2015-08-19 23:58:47 +02:00
Daniel Hahler ed09c7c1af Add JediDebugInfo command: display used Python version
This command is meant to come in handy to debug problems with jedi-vim.
For now, it will display the Python version that jedi-vim is using.
2015-08-19 23:57:29 +02:00
Daniel Hahler 2fbcc5b991 nvim: add a warning in case the auto-detected version is not functional
This usually means that the `neovim` module is not installed, which
commonly happens in a virtualenv.
2015-08-19 23:54:30 +02:00
Daniel Hahler 7890339ca8 Merge pull request #454 from davidhalter/smart-import-mapping
Smart import mapping

Closes https://github.com/davidhalter/jedi-vim/pull/453.
Closes https://github.com/davidhalter/jedi-vim/pull/454.
2015-08-19 23:46:22 +02:00
Daniel Hahler 91c2a031df Add tests for smart_auto_mappings 2015-08-19 22:37:32 +02:00
Daniel Hahler 0703494188 smart_auto_mappings: use C-r instead of expr-mapping
This makes it work in tests.  Using `<expr>` instead will not trigger
the expansion of the mapping.
This is likely a bug in vim-vspec; I have tried 1.4.1 (currently pinned)
and 1.6.1.
2015-08-19 22:37:13 +02:00
Daniel Hahler 6dedbf339e smart_auto_mappings: improve pattern 2015-08-19 22:36:23 +02:00
Daniel Hahler 889feae117 jedi#smart_auto_mappings: always 'popup_on_dot'
`popup_on_dot=1` means that it should not auto-select the first entry,
which is the case for the new smart-import-mapping.
2015-08-19 22:34:52 +02:00
Daniel Hahler ed4a8be12e Revert "Use " with the shell argument for system()"
This reverts commit 95b8dd77ba.
2015-07-27 02:04:02 +02:00
Daniel Hahler 924b4db962 Add myself to AUTHORS
According to my first contribution as of:

> commit b6bef9a
> Date:   Tue Mar 3 12:59:52 2015 +0100
2015-07-27 00:50:49 +02:00
Daniel Hahler 91b4332774 Fix ValueError with cmdline call signatures
Commit 8016665 escaped the newlines in `text`, which requires to use the
escaped version with `text.index` and `len`, too.

This fixes the following error:

    Traceback (most recent call last):
      File "…/jedi/jedi_vim.py", line 110, in wrapper
        return func(*args, **kwargs)
      File "…/jedi/jedi_vim.py", line 414, in cmdline_call_signatures
        left = text.index(params[index])
    ValueError: substring not found
2015-06-26 17:07:23 +02:00
Daniel Hahler 439e50e9d1 Use use_tabs_not_buffers=0 by default
Ref: https://github.com/davidhalter/jedi-vim/issues/408#issuecomment-101997691
2015-06-21 22:06:24 +02:00
Daniel Hahler 0dd1b9fd44 Fix PEP8 style 2015-05-12 22:08:39 +02:00
Daniel Hahler 6c1719a68a Fix rename behaviour with empty cword; honor b:changedtick
Ref: https://github.com/davidhalter/jedi-vim/issues/416
2015-05-12 22:08:30 +02:00
Daniel Hahler d79f41149f Fix wrong call of goto in do_rename
This was overseen in dd33e38.

This is the main fix for https://github.com/davidhalter/jedi-vim/issues/41.
2015-05-12 22:04:15 +02:00
Daniel Hahler 651eac91ff goto: fix return value to always be a list
Fixes https://github.com/davidhalter/jedi-vim/issues/414#issuecomment-101341260
2015-05-12 19:43:09 +02:00
Daniel Hahler abc0c07d0f echo_highlight: escape quotes in msg 2015-05-11 13:22:21 +02:00
Daniel Hahler dd33e38631 Add auto-goto command/function
This adds g:jedi#goto_command, and uses `<Leader>d` by default for it -
the old default for `g:jedi#goto_definitions_command`, which is now
empty.

It will try `script.goto_definitions()` first, and falls back to
`script.goto_assignments()` for builtins.

Closes https://github.com/davidhalter/jedi-vim/pull/407
2015-05-10 18:07:42 +02:00
Daniel Hahler 9a13f143a8 rename: fix saving/restoring of the view
This seemed(?) to work with Python 3, but not for Python 2.  Just get a
string (instead of dict) from Vim, and re-use that as-is.

This fixes afb84a8.
2015-05-09 19:14:54 +02:00
Daniel Hahler 054285e2b7 rename: fix opening new windows with &shellslash (Windows)
Ref: https://github.com/davidhalter/jedi-vim/pull/364#issuecomment-98418501
2015-05-03 17:16:08 +02:00
Daniel Hahler 4d67c1a6e3 rename: refactor into do_rename, add rename_visual
This adds a visual mode map for renaming, which asks for the new name
via input().

`rename` itself could be changed to use `input()`, too - but I've left
it for now.
2015-05-02 18:51:10 +02:00
Daniel Hahler 154e2dbae3 rename: use original word's length for replacing
Ref: https://github.com/davidhalter/jedi-vim/pull/403#discussion_r29548013
2015-05-02 18:46:52 +02:00
Daniel Hahler b9ba141069 rename: display error in case new_buffer should fail and continue
Previously it would `return`, which would not restore the previous
state.  While I am not sure that it should continue, it should at least
not return.
2015-05-02 16:42:36 +02:00
Daniel Hahler bf281dabda rename: fix _tabnew to go to the correct window 2015-05-02 16:42:28 +02:00
Daniel Hahler afb84a837c rename: save and restore view before/after changes 2015-05-02 16:42:04 +02:00
Daniel Hahler 7539614f09 rename: display number of affected buffers 2015-05-02 16:41:13 +02:00
Daniel Hahler fc95545378 rename: save/restore tab/windows; not via new_buffer
Ref: https://github.com/davidhalter/jedi-vim/pull/364#discussion-diff-25785992
2015-05-02 16:38:47 +02:00
Daniel Hahler 676c558110 VimError: set self.message
`self.message` is used in `__str__`.

Without this, tracebacks end like this:

    Traceback (most recent call last):
    [...]
      File "…/vim/neobundles/jedi/jedi_vim.py", line 87, in _catch_
    exception
        raise VimError(result['exception'], result['throwpoint'], string)
    jedi_vim.VimError: <unprintable VimError object>
2015-05-02 11:51:27 +02:00
Daniel Hahler 65c06553fd Move max_doc_height default to s:default_settings 2015-05-02 10:41:31 +02:00