1
0
forked from VimPlug/jedi

fix problems (end_pos of positions was wrong) with user_scopes

This commit is contained in:
David Halter
2012-12-17 22:19:39 +01:00
parent 8bbd2108bd
commit 7e7006e142
2 changed files with 8 additions and 4 deletions

View File

@@ -19,6 +19,9 @@ class Module(parsing.Simple, parsing.Module):
""" This module does a whole lot of caching, because it uses different
parsers. """
self.cache = {}
for p in self.parsers:
p.user_scope = None
p.user_stmt = None
def _get(self, name, operation, execute=False, *args, **kwargs):
key = (name, args, frozenset(kwargs.items()))
@@ -213,12 +216,12 @@ class FastParser(use_metaclass(CachedFastParser)):
h = hash(code_part)
p = None
if h in hashes:
if h in hashes and hashes[h].code == code_part:
p = hashes[h]
m = p.module
m.line_offset += line_offset + 1 - m.start_pos[0]
if self.user_position is not None and \
m.start_pos >= self.user_position >= m.end_pos:
m.start_pos <= self.user_position <= m.end_pos:
#print(h, line_offset, m.start_pos, lines)
p = None
else:
@@ -231,6 +234,7 @@ class FastParser(use_metaclass(CachedFastParser)):
top_module=self.module)
p.hash = h
p.code = code_part
p.module.parent = self.module
self.parsers.insert(parser_order, p)