Dave Halter
d81e393c0c
Fix indentation issues with backslashes and def error recovery
2020-04-10 21:48:28 +02:00
Dave Halter
7822f8be84
Python 2 compatibility
2020-04-09 22:47:50 +02:00
Dave Halter
93788a3e09
Add a test for the diff parser that xfails
2020-04-09 00:03:39 +02:00
Dave Halter
9e546e42de
Diff parser: Fix another byte order mark issue
2020-04-07 22:58:47 +02:00
Dave Halter
7b14a86e0a
Fix tokenizer error tokens
2020-04-07 09:55:28 +02:00
Dave Halter
f45941226f
Diff parser: Fix other BOM issues
2020-04-07 01:06:03 +02:00
Dave Halter
e04552b14a
Fix tests for Python 2
2020-04-06 23:52:29 +02:00
Dave Halter
cd9c213a62
Fix fstring issues when error leaves are involved
2020-04-06 23:34:27 +02:00
Dave Halter
556ce86cde
Tokenizer: It should not be possible to break out of backslashes on the next line, even if it was an error
2020-04-06 01:25:06 +02:00
Dave Halter
b12dd498bb
Diff parser: Fix BOM with indentation issues
2020-04-05 20:47:49 +02:00
Dave Halter
db10b4fa72
Diff parser: Need to care for eror dedents in some open parentheses/always break contexts
2020-04-05 14:39:56 +02:00
Dave Halter
ed38518052
Diff parser: Make sure that nested suites get properly copied
2020-04-05 02:48:41 +02:00
Dave Halter
ebc69545c7
Fix error recovery for multi line strings at the end of the file
2020-04-05 00:13:55 +02:00
Dave Halter
67ebb6acac
async is actually a token that cannot appear in brackets
2020-04-04 23:14:10 +02:00
Dave Halter
bcf76949b6
Diff parser: Remove error statements before caring about nested functions
2020-04-04 22:43:33 +02:00
Dave Halter
6c7b397cc7
Diff parser: Check indentation for copies correctly
2020-04-04 20:36:19 +02:00
Dave Halter
1927ba7254
Start using the parser count/copy count again
2020-04-04 17:49:35 +02:00
Dave Halter
f8dce76ef7
Make sure to only copy nodes that have the same indentation in diff parser
2020-04-04 16:07:54 +02:00
Dave Halter
3242e36859
Python 2 compatibility
2020-04-04 15:45:03 +02:00
Dave Halter
734a4b0e67
Remove support for specialized treatment of form feeds
...
This is a very intentional change. Previously form feeds were handled very
poorly and sometimes where not counted as indentation. This obviously makes
sense. But at the same time indentation is very tricky to deal with (both for
editors and parso).
Especially in the diff parser this led to a lot of very weird issues. The
decision probably makes sense since:
1. Almost nobody uses form feeds in the first place.
2. People that use form feeds like Barry Warsaw often put a newline ater them.
(e.g Python's email.__init__)
3. If you write an editor you want to be able to identify a unicode character
with a clear line/column. This would not be the case if form feeds were just
ignored when counting.
Form feeds will still work in Jedi, will not cause parse errors and in general
you should be fine using them. It might just cause Jedi to count them as
indentation **if** you use it like '\f foo()'. This is however confusing for
most editors anyway. It leads to a weird display e.g. in VIM, even if it's
perfectly valid code in Python.
Since parso is a code analysis parser and not the languages parser I think it's
fine to ignore this edge case.
2020-04-04 15:38:10 +02:00
Dave Halter
7f0dd35c37
Remove the piece of shit _get_insertion_node function
2020-04-04 03:51:28 +02:00
Dave Halter
77327a4cea
Make node insertion a bit easier
2020-04-03 03:28:14 +02:00
Dave Halter
ce170e8aae
WIP: Try to use the tokenizer in a more native way
2020-04-02 02:00:35 +02:00
Dave Halter
d674bc9895
Fix a backslash issue
2020-03-29 23:59:53 +02:00
Dave Halter
0d9886c22a
Diff parser: Rewrite tokenizer modifications a bit
2020-03-29 22:41:59 +02:00
Dave Halter
9f8a68677d
Tokenizer: It's now clearer when an error dedent appears
2020-03-29 13:50:36 +02:00
Dave Halter
38b7763e9a
Use _assert_nodes_are_equal in the fuzzer
2020-03-28 14:51:27 +01:00
Dave Halter
cf880f43d4
Tokenizer: Add error dedents only if parens are not open
2020-03-28 14:41:10 +01:00
Dave Halter
29e3545241
Fix adding error indents/dedents only at the right places
2020-03-27 17:05:05 +01:00
Dave Halter
4c42a82ebc
Allow multiple newlines in a suite, this makes the diff parser easier
2020-03-24 22:35:21 +01:00
Dave Halter
43651ef219
Diff parser: Make sure dedent start pos are matching
2020-03-24 22:27:04 +01:00
Dave Halter
2bef3cf6ff
Fix an issue where indents where repeated unnessecarily
2020-03-24 00:24:53 +01:00
Dave Halter
c18c89eb6b
Diff parser: Correctly add indent issues
2020-03-23 00:16:47 +01:00
Dave Halter
afc556d809
Diff parser: Prepare for indent error leaf insertion
2020-03-22 22:57:58 +01:00
Dave Halter
cdb791fbdb
Diff parser: Add error dedents if necessary, see also davidhalter/jedi#1499
2020-03-22 21:37:25 +01:00
Dave Halter
237dc9e135
Diff parser: Make sure to pop nodes directly after error nodes, see also davidhalter/jedi#1499
2020-03-22 14:49:22 +01:00
Dave Halter
51a044cc70
Fix diff parser: Invalid dedents meant that sometimes the wrong parents were chosen, fixes davidhalter/jedi#1499
2020-03-22 12:41:19 +01:00
Dave Halter
2cd0d6c9fc
Fix: Dedent omission was wrong, see davidhalter/jedi#1499
2020-03-22 12:41:19 +01:00
Dave Halter
4090c80401
Remove Python 2.6 grammar
2020-01-05 23:55:03 +01:00
Dave Halter
0a5b5f3346
Fix name tokenizing for Python 2
2019-07-13 15:34:23 +02:00
Dave Halter
58850f8bfa
Rename a test
2019-02-06 09:51:46 +01:00
Dave Halter
6c65aea47d
Fix working with async functions in the diff parser, fixes #56
2019-02-06 09:31:46 +01:00
Dave Halter
bb2855897b
Escape a backslash properly
2019-01-24 00:31:26 +01:00
Dave Halter
32a83b932a
Fix get_start_pos_of_prefix
2019-01-24 00:00:06 +01:00
Dave Halter
ce8b531175
Fix diff parser: The previous fix was a bit off
2019-01-20 19:03:45 +01:00
Dave Halter
0da0a8655a
Fix diff parser: issue with opening brackets
2019-01-20 00:41:11 +01:00
Dave Halter
3d890c3a00
Async doesn't work in 3.4
2019-01-19 12:59:35 +01:00
Dave Halter
956ea55048
Skip some tests for Python2.6 and Python3.3
2019-01-19 12:08:39 +01:00
Dave Halter
0bd17bee2c
Fix diff parser: DEDENT as error leaves should also be ignored and reparsed
2019-01-18 18:41:08 +01:00
Dave Halter
f3015efb2d
Fix diff parser: error dedents in between nodes should be ignored for now when copying
2019-01-18 02:43:12 +01:00