From bb9d6b4832cdb52ae23743f66012ba058ec58000 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 19 Nov 2014 13:24:45 +0100 Subject: [PATCH] Temporarily disable on import completion. Not sure if we're going to do it with the normal parser. --- jedi/api/__init__.py | 3 +++ jedi/api/helpers.py | 2 +- jedi/evaluate/imports.py | 6 +++++- jedi/parser/representation.py | 6 +++--- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 6808f9a8..d2eaf427 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -226,9 +226,12 @@ class Script(object): current_line = self._user_context.get_position_line() if not current_line.endswith('import import'): continue + """ a = s.import_stmt.alias if a and a.start_pos <= self._pos <= a.end_pos: continue + """ + # TODO what to do with this? names = s.get_defined_names(on_import_stmt=True) else: names = [] diff --git a/jedi/api/helpers.py b/jedi/api/helpers.py index 5398aaa4..dbb9af38 100644 --- a/jedi/api/helpers.py +++ b/jedi/api/helpers.py @@ -25,7 +25,7 @@ def get_on_import_stmt(evaluator, user_context, user_stmt, is_like_search=False) Resolve the user statement, if it is an import. Only resolve the parts until the user position. """ - name = user_stmt.leaf_for_position(user_context.position) + name = user_stmt.name_for_position(user_context.position) if name is None: raise NotImplementedError diff --git a/jedi/evaluate/imports.py b/jedi/evaluate/imports.py index 0dbbe978..28fbff59 100644 --- a/jedi/evaluate/imports.py +++ b/jedi/evaluate/imports.py @@ -38,7 +38,7 @@ class ModuleNotFound(Exception): self.name_part = name_part -class ImportWrapper(): +class ImportWrapper(pr.Base): GlobalNamespace = 'TODO PLEASE DELETE ME' def __init__(self, evaluator, name): self._evaluator = evaluator @@ -48,6 +48,10 @@ class ImportWrapper(): self.import_path = self._import.path_for_name(name) self.is_like_search = False # TODO REMOVE + def get_defined_names(self, on_import_stmt=False): + # TODO not sure if this method is actually necessary. + return [] + @memoize_default() def follow(self, is_goto=False): if self._evaluator.recursion_detector.push_stmt(self._import): diff --git a/jedi/parser/representation.py b/jedi/parser/representation.py index ae53d449..135c6519 100644 --- a/jedi/parser/representation.py +++ b/jedi/parser/representation.py @@ -414,13 +414,13 @@ class Simple(Base): def get_code(self): return "".join(c.get_code() for c in self.children) - def leaf_for_position(self, position): + def name_for_position(self, position): for c in self.children: if isinstance(c, Leaf): - if c.start_pos <= position < c.end_pos: + if c.start_pos <= position <= c.end_pos: return c else: - result = c.leaf_for_position(position) + result = c.name_for_position(position) if result is not None: return result return None