1
0
forked from VimPlug/jedi

start to remove user_stmt parsing

This commit is contained in:
Dave Halter
2014-01-17 00:25:30 +01:00
parent 6ef75256e0
commit 588fbea4f9
2 changed files with 8 additions and 4 deletions

View File

@@ -195,16 +195,21 @@ class UserContextParser(object):
cache.save_parser(self._path, None, parser, pickling=False)
return parser
@cache.underscore_memoization
def _get_user_stmt(self):
return self.module().get_statement_for_position(self._position,
include_imports=True)
def user_stmt(self, is_completion=False):
user_stmt = self._parser().user_stmt
user_stmt = self._get_user_stmt()
debug.speed('parsed')
if is_completion and not user_stmt:
# for statements like `from x import ` (cursor not in statement)
pos = next(self._user_context.get_context(yield_positions=True))
last_stmt = pos and self._parser().module.get_statement_for_position(
pos, include_imports=True)
last_stmt = pos and \
self.module().get_statement_for_position(pos, include_imports=True)
if isinstance(last_stmt, representation.Import):
user_stmt = last_stmt
return user_stmt