forked from VimPlug/jedi
start to remove user_stmt parsing
This commit is contained in:
@@ -16,7 +16,6 @@ from itertools import chain
|
|||||||
from jedi._compatibility import next, unicode, builtins
|
from jedi._compatibility import next, unicode, builtins
|
||||||
from jedi.parser import Parser
|
from jedi.parser import Parser
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import representation as pr
|
||||||
from jedi.parser import fast
|
|
||||||
from jedi.parser.user_context import UserContext, UserContextParser
|
from jedi.parser.user_context import UserContext, UserContextParser
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
|
|||||||
@@ -195,16 +195,21 @@ class UserContextParser(object):
|
|||||||
cache.save_parser(self._path, None, parser, pickling=False)
|
cache.save_parser(self._path, None, parser, pickling=False)
|
||||||
return parser
|
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):
|
def user_stmt(self, is_completion=False):
|
||||||
user_stmt = self._parser().user_stmt
|
user_stmt = self._get_user_stmt()
|
||||||
|
|
||||||
debug.speed('parsed')
|
debug.speed('parsed')
|
||||||
|
|
||||||
if is_completion and not user_stmt:
|
if is_completion and not user_stmt:
|
||||||
# for statements like `from x import ` (cursor not in statement)
|
# for statements like `from x import ` (cursor not in statement)
|
||||||
pos = next(self._user_context.get_context(yield_positions=True))
|
pos = next(self._user_context.get_context(yield_positions=True))
|
||||||
last_stmt = pos and self._parser().module.get_statement_for_position(
|
last_stmt = pos and \
|
||||||
pos, include_imports=True)
|
self.module().get_statement_for_position(pos, include_imports=True)
|
||||||
if isinstance(last_stmt, representation.Import):
|
if isinstance(last_stmt, representation.Import):
|
||||||
user_stmt = last_stmt
|
user_stmt = last_stmt
|
||||||
return user_stmt
|
return user_stmt
|
||||||
|
|||||||
Reference in New Issue
Block a user