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.fast import FastParser
|
||||||
from jedi.parser import representation
|
from jedi.parser import representation
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
|
from jedi.common import PushBackIterator
|
||||||
|
|
||||||
|
|
||||||
class UserContext(object):
|
class UserContext(object):
|
||||||
@@ -62,7 +63,7 @@ class UserContext(object):
|
|||||||
open_brackets = ['(', '[', '{']
|
open_brackets = ['(', '[', '{']
|
||||||
close_brackets = [')', ']', '}']
|
close_brackets = [')', ']', '}']
|
||||||
|
|
||||||
gen = tokenize.generate_tokens(fetch_line)
|
gen = PushBackIterator(tokenize.generate_tokens(fetch_line))
|
||||||
string = u('')
|
string = u('')
|
||||||
level = 0
|
level = 0
|
||||||
force_point = False
|
force_point = False
|
||||||
@@ -103,7 +104,14 @@ class UserContext(object):
|
|||||||
elif tok_type == tokenize.NUMBER:
|
elif tok_type == tokenize.NUMBER:
|
||||||
pass
|
pass
|
||||||
else:
|
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
|
x = start_pos[0] - end[0] + 1
|
||||||
l = self.get_line(x)
|
l = self.get_line(x)
|
||||||
|
|||||||
@@ -68,10 +68,10 @@ def test_completion_on_number_literals():
|
|||||||
|
|
||||||
# power notation
|
# power notation
|
||||||
_check_number('1.e14.')
|
_check_number('1.e14.')
|
||||||
#_check_number('1.e-3.')
|
_check_number('1.e-3.')
|
||||||
_check_number('9e3.')
|
_check_number('9e3.')
|
||||||
assert api.Script('1.e3..').completions() == []
|
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():
|
def test_completion_on_hex_literals():
|
||||||
|
|||||||
Reference in New Issue
Block a user