forked from VimPlug/jedi
backwards tokenizer can now handle 10e-5 and so on literals
This commit is contained in:
@@ -7,6 +7,7 @@ from jedi._compatibility import u
|
||||
from jedi.parser.fast import FastParser
|
||||
from jedi.parser import representation
|
||||
from jedi import debug
|
||||
from jedi.common import PushBackIterator
|
||||
|
||||
|
||||
class UserContext(object):
|
||||
@@ -62,7 +63,7 @@ class UserContext(object):
|
||||
open_brackets = ['(', '[', '{']
|
||||
close_brackets = [')', ']', '}']
|
||||
|
||||
gen = tokenize.generate_tokens(fetch_line)
|
||||
gen = PushBackIterator(tokenize.generate_tokens(fetch_line))
|
||||
string = u('')
|
||||
level = 0
|
||||
force_point = False
|
||||
@@ -103,7 +104,14 @@ class UserContext(object):
|
||||
elif tok_type == tokenize.NUMBER:
|
||||
pass
|
||||
else:
|
||||
break
|
||||
if tok_str == '-':
|
||||
next_tok = next(gen)
|
||||
if next_tok.string == 'e':
|
||||
gen.push_back(next_tok)
|
||||
else:
|
||||
break
|
||||
else:
|
||||
break
|
||||
|
||||
x = start_pos[0] - end[0] + 1
|
||||
l = self.get_line(x)
|
||||
|
||||
@@ -68,10 +68,10 @@ def test_completion_on_number_literals():
|
||||
|
||||
# power notation
|
||||
_check_number('1.e14.')
|
||||
#_check_number('1.e-3.')
|
||||
_check_number('1.e-3.')
|
||||
_check_number('9e3.')
|
||||
assert api.Script('1.e3..').completions() == []
|
||||
#assert api.Script('1.e-13..').completions() == []
|
||||
assert api.Script('1.e-13..').completions() == []
|
||||
|
||||
|
||||
def test_completion_on_hex_literals():
|
||||
|
||||
Reference in New Issue
Block a user