Commit Graph
100 Commits
Author SHA1 Message Date
Dave Halter 519fa9cfb5 Remove complicated merging of used names from the parser.
It's a lot of complicated code and a lot can go wrong. It also didn't speed up anything. If anything it made things like 5% slower. I have tested this with:

./scripts/diff_parser_profile.py wx._core.py

wx._core.py is not part of Jedi.
2017-03-16 22:00:01 +01:00
Dave Halter ce41119051 Fix some stuff in a diff profile test script. 2017-03-16 21:45:51 +01:00
Dave Halter 8156a6b8a2 Remove used_names from the parser step. It's a separate iteration, now. 2017-03-16 21:28:42 +01:00
Dave Halter fd50146f92 Simple cleanup. 2017-03-16 20:20:58 +01:00
Dave Halter 96c67cee26 Simplify the leaf with newlines stuff. 2017-03-16 20:18:30 +01:00
Dave Halter 4573ab19f4 Separate the python syntax tree stuff from the non python stuff. 2017-03-16 19:54:08 +01:00
Dave Halter 448bfd0992 Move the python parser tree. 2017-03-16 17:20:32 +01:00
Dave Halter b136800cfc Don't use as in imports when not needed. 2017-03-16 08:45:12 +01:00
Dave Halter 06702d2a40 Move the python parser. 2017-03-16 08:40:19 +01:00
Dave Halter a83b43ccfd Merge branch 'dev' of github.com:davidhalter/jedi into dev 2017-03-15 19:12:51 +01:00
Dave Halter 93f14157a6 Cleanup the ParseError stuff. 2017-03-15 18:41:58 +01:00
Dave Halter 0effd348e8 Add a note about the grammar creation. 2017-03-15 18:18:06 +01:00
Dave Halter c332fba488 Fix a namespace packages related issue. 2017-03-15 08:59:24 +01:00
Dave Halter 375749c5c3 Small restructuring. 2017-03-15 08:56:49 +01:00
Dave Halter 55c9fd3227 Fix an issue in the fake parser 2017-03-15 08:44:49 +01:00
Dave Halter 68a7365a0a A few docstring improvements. 2017-03-14 21:03:03 +01:00
Dave Halter 9efb3f0af2 More direct parser usage removals. 2017-03-14 19:31:54 +01:00
Dave Halter 717bfeb574 Remove an occurance of the complicated parser creation. 2017-03-14 19:27:03 +01:00
Dave Halter 97fc3bc23c Refactored the parser calls. Now it's possible to use jedi.parser.python.parse to quickly parse something. 2017-03-14 00:38:58 +01:00
Dave Halter 9b5e6d16da Improved grammar loading API. 2017-03-13 20:33:29 +01:00
Dave Halter 595ffc24d4 Move some more stuff to a python directory in the parser. 2017-03-13 00:54:39 +01:00
Dave Halter 922c480e2e Moved the parser to a new file. 2017-03-12 21:33:41 +01:00
Dave Halter a635b6839a Remove unused code. 2017-03-12 21:28:32 +01:00
Dave Halter af9b0ba8d6 Merge branch 'master' into dev 2017-03-12 20:51:17 +01:00
Dave Halter a7b1e3fe70 Fixed another diff parser error. 2017-03-12 15:58:14 +01:00
Dave Halter 6e3b00802c Another endless while loop issue, add an assert. 2017-03-11 14:54:44 +01:00
Dave Halter 818fb4f60c Fix a bug that might have caused an endless while loop a while ago. Fixes #878. 2017-03-09 21:47:16 +01:00
Dave Halter ccef008376 Python 2 compatibility. 2017-03-09 21:06:20 +01:00
Dave Halter c7a74e6d1c Make the tokenizer a generator. 2017-03-09 18:53:09 +01:00
Dave Halter 989e4bac89 Speed up splitlines.
We use the python function again with the modifications we need.
I ran it with:

    python3 -m timeit  -n 10000 -s 'from jedi.common import splitlines; x = open("test_regression.py").read()'

The speed differences are quite remarkable, it's ~3 times faster:

    10000 loops, best of 3: 52.1 usec per loop

vs. the old:

    10000 loops, best of 3: 148 usec per loop

We might need to speedup splitlines with  as well. It's probably
also a factor 2-3 slower than it should be.
2017-03-09 08:58:57 +01:00
Dave Halter b814a91f29 Avoid endless loop with an assert in the diff parser. 2017-03-08 18:33:38 +01:00
Dave Halter 5c9769c5a3 Merge remote-tracking branch 'origin/master' into dev 2017-03-07 19:01:53 +01:00
Dave Halter ee98eab64c Merge branch 'dev' of github.com:davidhalter/jedi into dev 2017-03-07 19:01:42 +01:00
Dave Halter 05e05252fa Make python -m jedi.parser.tokenize possible for debugging purposes. 2017-03-07 18:31:12 +01:00
Dave Halter 8131f19751 Correct an issue in the tests with the last commit. 2017-02-04 18:11:54 +01:00
Dave Halter b6e61133d8 Move the tests for the last PR #848. 2017-02-04 18:11:14 +01:00
Dave Halter 1d64a5caa1 Replace first_leaf and last_leaf with get_first_leaf and get_last_leaf. 2017-02-03 17:35:53 +01:00
Dave Halter 90fffd883e Clean up the function docstring. 2017-02-03 17:30:58 +01:00
Dave Halter 647aec11a6 Return None instead of raising an IndexError in get_next_leaf. 2017-02-03 17:26:02 +01:00
Dave Halter c5071f9f49 Change get_previous_leaf to return None if there is no leaf anymore (at the start of the file). 2017-02-03 17:23:15 +01:00
Dave Halter 445bf6c419 Get rid of get_parent_until. 2017-02-03 09:59:32 +01:00
Dave Halter b3cb7b5490 Remove the def isinstance from the parser. It was a really bad pattern. 2017-02-03 09:37:59 +01:00
Dave Halter 6ccac94162 Add a deploy script. 2017-02-03 00:40:19 +01:00
Dave Halter f2b41b1752 Update already the version number so we don't forget it. 2017-02-03 00:38:08 +01:00
Dave Halter 7020086166 Changelog for 0.10.0 2017-02-03 00:08:51 +01:00
Dave Halter 8027aeebd8 Fix a small bug that was raised two commits ago (in the test suite). 2017-02-02 23:50:29 +01:00
Dave Halter f627d541b8 Trying to fix the docs. 2017-02-02 23:39:10 +01:00
Dave Halter a5a54fbc85 Fix a call signature issue. 2017-02-01 19:21:07 +01:00
Dave Halter 68a3a9cf41 Don't do anything with the diff parser if nothing changes. 2017-01-29 22:12:24 +01:00
Dave Halter e5af996829 Remove old debug code from the diff parser. 2017-01-29 21:57:09 +01:00
Dave Halter e0c8b3dd3b Fix an context issue in completions. 2017-01-29 19:09:35 +01:00
Dave Halter 3f1e658e1d Set the limit for debugging failed diff parsers a bit higher. 2017-01-29 14:34:20 +01:00
Dave Halter 40b6079ebd If an INDENT is the next supposed token, we should still be able to complete. 2017-01-29 14:06:22 +01:00
Dave Halter b0f340748c So much work for one simple diff fail. 2017-01-29 00:42:09 +01:00
Dave Halter b779677bf9 Merge branch 'dev' of github.com:davidhalter/jedi into dev 2017-01-25 23:21:45 +01:00
Dave Halter b18239f9dd Add a way to profile the diff parser. 2017-01-25 23:00:33 +01:00
Dave Halter 9982975ad2 Another small performance improvement. 2017-01-25 22:54:08 +01:00
Dave Halter 4918fb49f5 Implement binary search for get_leaf_for_position. This makes it a lot faster. 2017-01-25 22:27:36 +01:00
Dave Halter f2db0dceb4 A few small performances improvements on the diff parser. 2017-01-25 21:12:13 +01:00
Dave Halter dfced86730 Merge pull request #834 from Carreau/fix-keyword
Fix keywords detected as modules
2017-01-24 13:27:49 +01:00
Dave Halter 551c122cf8 Fix an issue in sith where there we have accessed a removed Jedi property. 2017-01-24 09:57:43 +01:00
Dave Halter f4b8a02d37 Add a few speed debugging times to the diff parser. 2017-01-24 09:51:23 +01:00
Dave Halter 09779c88aa Fix a nasty issue in the tokenizer. Fixes #836.
At the same time there was a related issue of not cleaning up newlines properly.
2017-01-24 00:50:37 +01:00
Dave Halter 741993a738 Merge branch 'dev' of github.com:davidhalter/jedi into dev 2017-01-23 20:37:34 +01:00
Dave Halter e7fcc21863 Remove both MergedNodes and AlreadyEvaluated, they are unused. 2017-01-23 20:36:26 +01:00
Dave Halter 7623b1e350 Removed tree.is_node.
It's not needed anymore, because we have Node/Leaf.type now.
2017-01-23 20:34:30 +01:00
Dave Halter 64abe401ed The position modifier is not used anymore. 2017-01-23 20:12:17 +01:00
Dave Halter d85ceb9222 More cleanups in the parser. 2017-01-23 20:10:02 +01:00
Dave Halter 645841d98c Remove more unused code. 2017-01-23 19:51:30 +01:00
Dave Halter b286f3aef0 Merge pull request #832 from Carreau/more-docs
Improve some documentation about name_with_symbols, name and completion.
2017-01-23 15:00:45 +01:00
Dave Halter 01b25efea1 Use the same function to detect newlines in the diff parser. 2017-01-23 09:56:38 +01:00
Dave Halter 1caa2ceafa Cannot use sys.version.major and minor names, because in Python 2.6 it's
not a namedtuple.
2017-01-23 01:09:01 +01:00
Dave Halter 8d2ec6556e Fix a Python 2.7 issue. 2017-01-23 00:36:57 +01:00
Dave Halter 1ff7ecc7af Remove jedi.settings.add_dot_after_module that was removed a while ago from documentation. 2017-01-23 00:12:02 +01:00
Dave Halter 194295066a Fix one more issue in the diff parser. 2017-01-22 23:44:10 +01:00
Dave Halter 08c66207ec Fix the last diff parser test. 2017-01-22 20:27:11 +01:00
Dave Halter dca35393d5 Remove old code from the diff parser. 2017-01-22 20:22:20 +01:00
Dave Halter 8f4b862892 Fix most diff tests. 2017-01-22 20:13:18 +01:00
Dave Halter 005b24ed54 Better handling of the stack. 2017-01-21 18:43:54 +01:00
Dave Halter 21cd10cefd Get a few diff tests passing. 2017-01-20 20:46:30 +01:00
Dave Halter 73b2287fb4 Fix some tests. 2017-01-20 18:12:09 +01:00
Dave Halter ebfae050a8 Delete a lof of duplicate code. 2017-01-19 18:31:53 +01:00
Dave Halter ef31c3d1f4 Some asserts pass now in the tests. 2017-01-19 18:26:50 +01:00
Dave Halter 3bf5f93edd Progress in using a stack in the diff parser. 2017-01-19 09:44:07 +01:00
Dave Halter fe44458ec0 Start implementing the node stack. 2017-01-16 16:32:49 +01:00
Dave Halter 98185d530e Simplify deep_ast_parser a lot. 2017-01-12 21:51:02 +01:00
Dave Halter ad1222e6d7 Fix another parser bug. 2017-01-12 08:46:58 +01:00
Dave Halter 0141711af8 Diff parser docstring. 2017-01-10 19:17:37 +01:00
Dave Halter 425fba5e95 Move the parser.fast module to parser.diff. 2017-01-10 19:15:47 +01:00
Dave Halter 1edccbe2c3 Improve literal tests. 2017-01-08 19:52:21 +01:00
Dave Halter 7300f3e7ef Fix issues with Python 3.6's f strings and underscores in numbers. 2017-01-08 19:39:14 +01:00
Dave Halter 00a9f1ec0a Update the tokenizer to include f literals and underscores. Need tests still. 2017-01-08 16:03:45 +01:00
Dave Halter 3f09f3a304 Add support for PEP 0526.
This makes it possible to assign variables like

    asdf: typing.List[int] = []
2017-01-08 03:57:35 +01:00
Dave Halter 6d00a5702f If newer versions are using Jedi (e.g. at the moment Python 3.7), it shouldn't just result in a grammar issue, just because that grammar doesn't not exist. Just take the Python 3.6 grammar instead. 2017-01-07 15:54:04 +01:00
Dave Halter aff3950085 Better async testing. 2017-01-07 15:40:55 +01:00
Dave Halter 6a18ddf8cb Fix await issues. At the moment Jedi is just ignoring await statements. 2017-01-07 15:27:32 +01:00
Dave Halter d3c437e891 Restructure yield code to make it less error prone. 2017-01-07 12:43:15 +01:00
Dave Halter 1f15ee8bc7 Fix an issue with contexts. 2017-01-06 00:08:01 +01:00
Dave Halter ae8e43d3c7 Move get_node() to tree_node and replace all the custom classdefs/funcdefs. 2017-01-05 23:43:12 +01:00
Dave Halter b44f0aae5d Remove the origin_scope from filters that don't need it. 2017-01-05 21:57:06 +01:00