Commit Graph

873 Commits

Author SHA1 Message Date
Daniel Hahler
d3f40d13ec Update submodule pythonx/parso 59df3fa...c0ace63
* pythonx/parso 59df3fa...c0ace63 (9):
      > For Python 2.7 and 3.4 pytest 5 doesn't work anymore
      > Prepare the 0.5.1 release
      > Fix name tokenizing for Python 2
      > Fix positioning for names that are interleaved with error tokens
      > Merge branch 'master' of github.com:davidhalter/parso
      > Fixed name tokenizing issues for tamil characters, fixes davidhalter/jedi#1368
      > Document that the cache uses pickle files
      > Fix changelog dates, fixes #77
      > Try to use collections.abc.Mapping instead of collections.Mapping
2019-07-13 20:21:56 +02:00
Dave Halter
016fb7c78e Merge pull request #915 from davidhalter/typeshed
With typeshed coming to Jedi, builtin modules should be displayed
2019-06-23 01:13:14 +02:00
Dave Halter
e736eea934 Use staticmethod for call signature tests instead of str
str has different signatures for Python 2 and 3 and is therefore annoying to test.
2019-06-21 00:28:18 +02:00
Dave Halter
6c6b4dcf92 Make sure that formatting happens on unicode 2019-06-20 23:56:46 +02:00
Dave Halter
73289427ba Modules should be accessible if column is not None 2019-06-20 23:46:34 +02:00
Dave Halter
1a053d2a23 Fix some call signature tests 2019-06-20 23:37:43 +02:00
Dave Halter
636ad08d32 Get rid of documentation about pip install jedi
pip install jedi doesn't work with properly with virtualenvs, if jedi-vim is
used.
2019-06-20 23:15:16 +02:00
Dave Halter
d32962f3b2 Upgrade Jedi to 0.14.0 and parso to 0.5.0 2019-06-20 22:38:57 +02:00
Dave Halter
717446dd71 For whatever reason tabs were used as indentation 2019-06-17 20:52:31 +02:00
Dave Halter
9c9a513aaf Add a goto_stubs command 2019-06-16 09:39:50 +02:00
Daniel Hahler
69aa410afa Fix :JediClearCache!
Parso's cache can be cleaned from Jedi now.
2019-04-28 21:19:39 +02:00
Daniel Hahler
914754a04e Disable smart_auto_mappings by default
Ref: https://github.com/davidhalter/jedi-vim/issues/568
2019-04-06 01:02:23 +02:00
Dave Halter
f26b2a8802 Change supported Python version in docs 2019-03-22 12:40:28 +01:00
Daniel Hahler
d879d2f216 jedi#show_documentation: check len of g:jedi#documentation_command 2019-03-22 12:35:43 +01:00
Dave Halter
23c14f6826 With typeshed coming to Jedi, builtin modules should be displayed
(If there's a module_path (which most will have)).

This change is still backwards compatible and can be used with older Jedi
versions (<0.14.0).
2019-03-09 13:35:56 +01:00
Dave Halter
1f7e661d9d Upgrade parso 2019-02-24 18:59:53 +01:00
Dave Halter
c6fe4fee76 Upgrade Jedi to latest 2019-02-24 18:59:29 +01:00
Dave Halter
ea5e87a703 Remove jedi.NotFoundError, because that was removed quite a while ago, see #899 2019-02-17 18:04:15 +01:00
Henré Botha
d02a72e792 Update Python version in README (#911)
As per the author's comment here, Python 2.6 is no longer supported. https://github.com/davidhalter/jedi-vim/issues/866#issuecomment-409852888
2019-02-12 14:30:02 +01:00
Daniel Hahler
42d24387ac Update parso to 0.3.3 (#909)
Update submodule pythonx/parso a2b153e...f1ee761

    * pythonx/parso a2b153e...f1ee761 (6):
      > Release of 0.3.3
      > Rename a test
      > Remove some unused code
      > Fix working with async functions in the diff parser, fixes #56
      > Fix bytes/fstring mixing when using iter_errors, fixes #57.
      > Improve a docstring, fixes #55.
2019-02-06 13:09:45 +01:00
Stevan Milic
ba5915bf26 Fix rename with folds: replace line in buffer directly (#906)
Fixes #789
2019-02-05 20:28:46 +01:00
Daniel Hahler
c5c13d69d6 ci: Travis: Ubuntu Xenial, and pynvim (#908) 2019-02-05 20:03:33 +01:00
Daniel Hahler
f36749776d Update parso to v0.3.2
Update submodule pythonx/parso 930ec08...a2b153e

    * pythonx/parso 930ec08...a2b153e (91):
      > Upgrade the Changelog
      > Escape a backslash properly
      > Bump the parso version to 0.3.2
      > f-string parts are also PythonLeaf instances
      > Fix get_start_pos_of_prefix
      > Remove dead code
      > Refactor f-string support
      > Fix: End detection for strings was mostly wrong, fixes #51
      > Fix f-string escapes, fixes #48
      > Tokenizer: Simplify end of string regexes
      > Add a comment from the Python3.7 code base
      > Fix diff parser: The previous fix was a bit off
      > Change fuzzer: Add ways to not always use correct parse input
      > Fix diff parser: issue with opening brackets
      > Async doesn't work in 3.4
      > Skip some tests for Python2.6 and Python3.3
      > Fix diff parser: DEDENT as error leaves should also be ignored and reparsed
      > Fix diff parser: error dedents in between nodes should be ignored for now when copying
      > Fix diff parser: Don't copy error nodes/leaves in the beginning, leads to strange issues in some cases
      > Diff fuzzer: Create a check to see if the errors make sense.
      > Fix diff parser: Don't copy DEDENT tokens at the beginning
      > Fix diff parser: Skip last leaves for last line offset leaves
      > Fix indentation error tokens
      > Fix diff parser: Avoid side effects for prefix
      > Fix tokenizer: backslashes sometimes led to newline token generation
      > Make lines easier copyable in the fuzzer
      > Fix tokenizer: Carriage returns after backslashes were not properly handled
      > Fix in diff parser: prefix calculation was wrong when copying nodes
      > Replace --print-diff with --print-code
      > Fix diff parser generation for empty files
      > Docopt should not be needed for tests
      > Fix tokenizer: Form feeds and multiline docstrings didn't work together
      > Fix diff parser: Need to calculate the prefix for the diff tokenizer better
      > Remove copied nodes stuff, to simplify some things
      > Fix newline endings and a few parser/copy counts
      > Feature: The diff parser fuzzer is now able to use random Python fragments
      > Fix: The Python 3.8 grammar did not include f-string support
      > Fix tokenizer: Closing parentheses in the wrong place should not lead to strange behavior
      > Fix end positions with error dedents
      > Fix diff parser tests for Python 2
      > Randomize the fuzzer a bit more with inserting characters
      > Simplify the regexes
      > Fix a regex clause that was totally wrong
      > Fix another tokenizer issue
      > Apply \r changes in syntax trees
      > Actually make \r usable
      > Fix split lines for Python code
      > Add \r as a valid linebreak for splitlines
      > Move split_lines tests around
      > Start generating really random strings with the fuzzer
      > Fix tokenizer: Dedents before error tokens are properly done, now.
      > Fix diff parser: Also check async with
      > Make the diff parser use a lot of different files by default
      > Fix diff parser: Forgot that with statments are also flows
      > Fix valid graph asserting for some dedents that are errors
      > Fix diff parser: If funcs are not copied, errors shouldn't either
      > Better documentation for the fuzz diff parser script
      > Rename a test
      > More verbose output for the diff fuzzer
      > Fix diff parser: error dedent issues
      > Fix diff parser: Avoid indentation issues
      > Use the right diff order in debug output
      > Fix diff parser: The prefix was wrong in some copy cases
      > Make fuzz parser compatible with Python 2
      > Make it possible to print all diffs in fuzzer
      > Introduce a redo flag 'only_last' to narrow down issues
      > Add docopt to testing dependencies
      > Rewrite the fuzz diff parser to cache errors (so we can re-run those)
      > Fix diff parser: Decorators were sometimes parsed without their functions
      > Fix tokenizer: Dedents should only happen after newlines
      > Usability for diff parser fuzzing
      > Fix for diff parser: Rewrite prefix logic and don't mutate prematurely
      > Fix diff parser: positioning of functions if decorators were removed
      > Ignore ERROR_DEDENT in graph validation
      > Add a small diff parser fuzzer
      > Fix diff parser: get_last_line was sometimes wrong
      > Fix error reporting order for diff issues
      > Clean up the test diff parser file
      > Avoid nasty side effects in creation of Node
      > Make parso errors even more informative
      > Fix diff parser get_last_line calculation
      > Fix graph asserting for error indents
      > Better checks for checking valid graphs
      > Create better ways for debugging the diff parser
      > Fix diff-parser: Copying parts of if else should not lead to the whole thing being copied
      > Reenable diff parser parser counting in all tests
      > Fix: Make the NodesStack to a NodesTree
      > Fix for diff parser : Make sure that start_pos are growing always The problem was that functions/classes were sometimes not well positioned. Now all diff tests are ensuring that leaves always grow.
      > Add a check to see if leaves have the right start positions
      > Add parso version to an exception
      > MNT: add grammar for python 3.8
2019-01-25 01:21:33 +01:00
Brian Mego
7f4f2db260 Fixes incorrect documentation 2018-12-03 23:51:19 +01:00
Daniel Hahler
2f65c636f8 ftplugin: do not duplicate jedi_usages autocommands (#883)
Fixes https://github.com/davidhalter/jedi-vim/issues/882.
2018-11-08 08:43:28 +01:00
Daniel Hahler
b6dfc5fd49 Update submodule pythonx/parso e6bc924...930ec08
* pythonx/parso e6bc924...930ec08 (7):
      > Use SVG badges
      > tox.ini: simplify deps
      > tox: add pypy to envlist for tox-travis
      > setup.py: add "testing" extras_require
      > Add Python 3.7 stable to test matrix and update classifiers
      > Update usage.rst
      > Don't use invalid escape sequences in regex, see https://github.com/davidhalter/jedi-vim/issues/843
2018-10-14 17:55:56 +02:00
Daniel Hahler
2a43448f3b Update submodule pythonx/jedi a79a1fb...bd1010b
* pythonx/jedi a79a1fb...bd1010b (91):
      > Create a new 0.13.1 release
      > Fixed completions of global vars and tensorflow slowness, fixes #1228, #1116
      > The changelog date was wrong
      > Release notes for 0.13.0
      > Fix tensorflow issues with a few hacks (temporary), fixes #1195
      > If the VIRTUAL_ENV variable changes, need to reload the default environment, fixes #1201, #1200
      > Return SameEnvironment as a default, fixes #1226, #1196
      > Document that using the REPL autocompletion is only available on Linux/Mac, fixes #1184
      > Fix an issue with f-strings, fixes #1224
      > Ignore some errors that are happening when the Python process ends and its subprocesses are cleaned up
      > also remove crashes with pep 448 unpacking of lists and sets
      > Fixed crash (and now recognises correctly) {**d, "b": "b"}["b"]
      > Recognize {**d} as a dict instead of set
      > Add extras_require=testing
      > _get_virtual_env_from_var: use safe=False
      > tests: venv_path: use session scope
      > jedi/api/environment.py: minor flake8 fix
      > jedi.api.environment._SUPPORTED_PYTHONS: add 3.7
      > Removing a test from doctests, becaues it shouldn't be one
      > Refactor argument clinic usage
      > With the recent changes one performance optimization got lost
      > FunctionExecutionContext should use the parent if possible
      > Use anonymous instance arguments in a different way
      > Move some anonymous instance function execution stuff
      > Get rid of InstanceFunctionExecution, because it's really not needed
      > Use the InstanceArguments for super as well
      > Use InstanceArguments directly and not via InstanceFunctionExecution
      > Remove old garbage code
      > Don't use arguments that are not needed
      > Also move the remaining get_params to get_executed_params
      > get_params -> get_executed_params where possible
      > Subprocess error reporting improvements
      > Fix a recursion issue about compiled objects
      > Use a CompiledInstanceNameFilter that wraps the class name as well
      > Prefer Python 3 import over 2
      > Now it's actually possible to specify a pytest environment for the same Python version
      > Note that Python 3.3 support was dropped in Changelog
      > Drop support for EOL Python 3.3 (#1019)
      > Rewrite the pyc test
      > Fix an issue with stderr debugging of subprocesses
      > stderr of the child processes should be printed in debug output
      > Use close_fds for posix.
      > Remove some redundant code
      > Use names of classes to infer names of instances
      > Don't have execute and execute_evaluated on name
      > Fix an issue where __ prefixed variables where not hidden when accessed from a class
      > Bound methods are now working correctly in all Python versions. Therefore a test was wrong.
      > Remove a print in tests
      > BoundMethods now have access to the function that they are using
      > Remove another usage of is_class where it's not needed
      > FunctionContext should be created from a unified interface
      > Don't create a FunctionExecutionContext if it's not used.
      > Use TreeContext in a good way
      > Fix broken link in documentation
      > The implicit namespace package test from 4b276bae87a3170672f7ddb3e00f5851fe24d562 can only be used for Python 3.4+
      > The import resolution for namespace packages was wrong
      > Add a way to use the interpreter environment for tests
      > MergedExecutedParams -> DynamicExecutedParams
      > Fix a recursion error, fixes #1173
      > Remove two recursion tests again that will belong into a commit at a point where it is not failing anymore
      > Don't merge params if it's just one param
      > Add a repr for AnonymousArguments
      > Fix a doctest
      > Some minor flake8 fixes
      > Script.__repr__: include environment
      > Add params to CallSignature.__repr__
      > Environments are now always created on request
      > Improve Environment
      > Add max line length 100 to the config for flake8
      > tests: use monkeypatch.setenv
      > Don't test Python 3.3 on appveyor anymore, it's getting really hard to get all the right dependencies for it, because 3.3 is deprecated everywhere.
      > Mention that it's ok to have a line length of 100 characters in our files.
      > Don't use invalid escape sequences in regex, see https://github.com/davidhalter/jedi-vim/issues/843
      > subprocess: listen: exit normally with EOFError
      > Script: improve ValueError for column
      > The sys path might be lazy or not in a venv
      > The encoding parameter should be used again (includes test), fixes #1167
      > Remove source_encoding from documentation (see #1167)
      > Actually use the fast_parser setting again
      > Use an import name list as long as possible
      > Different _load_module API
      > Directly load modules if possible, with this it's not necessary anymore to use dotted_from_fs_path, also fixes #1013.
      > Don't mutate the sys.path. This is pretty nasty bug that fixes #1148
      > Don't follow builtin imports anymore by default when follow_imports is on (goto)
      > Add a changelog entry for the include_builtins change
      > additional_module_paths in usages never actually worked
      > Add include_builtins to usages, fixes #1131.
      > Finally make it possible to use auto_import_modules for packages
      > Test auto_import_modules in a very basic way
      > Fix a bug about fstring completion
      > Comprehensions are also possible arguments. Fixes 1146
2018-10-14 17:55:56 +02:00
Daniel Hahler
c6f05cd82c .coveragerc: concurrency = greenlet (#874)
Fixes https://github.com/neovim/python-client/issues/354
2018-08-16 16:37:00 +02:00
Daniel Hahler
132d8506ab tests: move/rename/cleanup vspec based tests (#860)
The main motivation is to being able to use normal/other pytest based
tests.

Therefore this moves everything from conftest into test_integration
itself.
2018-08-01 23:57:37 +02:00
Daniel Hahler
399c57ff72 Fix displaying of error information with shortmess+=F
When being initialized via ftplugin `set shortmess+=F` (default in
Neovim by now) causes the additional information (the full traceback) to
be silenced.

This patch uses `:unsilent` to always display it.

Ref: https://github.com/neovim/neovim/issues/8675
2018-08-01 22:50:23 +02:00
Daniel Hahler
1126ffde9b Makefile: make pip-install quiet 2018-08-01 22:50:23 +02:00
Daniel Hahler
88502891ba Report coverage (#863) 2018-07-30 22:45:06 +02:00
Dave Halter
b33392c8c8 Merge pull request #864 from blueyed/nvim (neovim testing)
Testing is now alow possible with Neovim
2018-07-30 18:09:45 +02:00
Daniel Hahler
ffec4d7fc5 Test with Neovim 2018-07-30 14:24:53 +02:00
Daniel Hahler
43a9a9b191 Fix test/signatures.vim: ensure there is no indent (nvim) 2018-07-30 14:24:53 +02:00
Daniel Hahler
e05f34646e Fix test/signatures.vim: take into account &ruler (nvim) 2018-07-30 14:24:53 +02:00
Daniel Hahler
713e78dd39 tests: harden/fix completions with regard to longest/nvim mostly 2018-07-30 14:24:53 +02:00
Daniel Hahler
e49638ffc8 Upgrade vim-vspec to 1.8.1 (#862)
This fixes some tests to make it work with the newer version.
2018-07-30 11:16:51 +02:00
Daniel Hahler
4c430ed536 Improve JediDebugInfo for envs (#858)
Improve JediDebugInfo for envs

This is taken out of https://github.com/davidhalter/jedi-vim/pull/836.
2018-07-28 01:46:12 +02:00
Daniel Hahler
40fc5ab27f test/signatures.vim: remove trailing spaces 2018-07-25 02:21:54 +02:00
Daniel Hahler
9a4a4f4074 Skip duplicate call signatures
I am seeing `p` twice for os.path.dirname, which seems to come from
Lib/posixpath.py and Lib/ntpath.py, as can be seen with `os.path.join`,
where I still see two with this patch:

```
            (path, *paths)
import os   (a, *p)
os.path.join()
```
2018-07-16 13:50:49 +02:00
Daniel Hahler
c6716c6392 Makefile: use a single venv 2018-07-15 21:22:29 +02:00
Daniel Hahler
5123dbbbc7 Fix flake8 issue 2018-07-15 20:57:27 +02:00
Daniel Hahler
ee0f759a2e qa: add flake8 to check make target 2018-07-15 20:57:27 +02:00
Daniel Hahler
66b6a20041 Factor out annotate_description
This uses d.type, but special-cases functions and statements.
2018-07-15 19:26:11 +02:00
Daniel Hahler
8e077adb2f show_goto_multi_results: use relpath
This helps Vim to display the path for unlisted buffers relative to cwd
in the quickfix list.
2018-07-15 19:26:11 +02:00
Dave Halter
e7cb9a186e Also add remove_usages on InsertEnter 2018-07-15 19:26:11 +02:00
Dave Halter
b5774a9554 Add an augroup for usages 2018-07-15 19:26:11 +02:00
Dave Halter
f0d80048f1 Remove usages after text has changed in normal mode 2018-07-15 19:26:11 +02:00
Dave Halter
9e2244c44e Use standout/reverse instead of yellow for jediUsages
It uses cterm=reverse, which is supported by current Neovim, and at
least for xterm and rxvt-unicode reverse and standout are the same.

See `infocmp`:

> smso=\E[7m / rev=\E[7m
2018-07-15 19:26:11 +02:00