forked from VimPlug/jedi
goto_definitions -> infer; goto_assignments -> goto, see #1166
This commit is contained in:
@@ -222,9 +222,10 @@ class Script(object):
|
|||||||
return completion.completions(fuzzy)
|
return completion.completions(fuzzy)
|
||||||
|
|
||||||
def completions(self, fuzzy=False):
|
def completions(self, fuzzy=False):
|
||||||
|
# Deprecated, will be removed.
|
||||||
return self.complete(*self._pos, fuzzy=fuzzy)
|
return self.complete(*self._pos, fuzzy=fuzzy)
|
||||||
|
|
||||||
def goto_definitions(self, **kwargs):
|
def infer(self, line=None, column=None, **kwargs):
|
||||||
"""
|
"""
|
||||||
Return the definitions of a the path under the cursor. goto function!
|
Return the definitions of a the path under the cursor. goto function!
|
||||||
This follows complicated paths and returns the end, not the first
|
This follows complicated paths and returns the end, not the first
|
||||||
@@ -240,12 +241,17 @@ class Script(object):
|
|||||||
:rtype: list of :class:`classes.Definition`
|
:rtype: list of :class:`classes.Definition`
|
||||||
"""
|
"""
|
||||||
with debug.increase_indent_cm('goto_definitions'):
|
with debug.increase_indent_cm('goto_definitions'):
|
||||||
return self._goto_definitions(**kwargs)
|
return self._goto_definitions(line, column, **kwargs)
|
||||||
|
|
||||||
def _goto_definitions(self, only_stubs=False, prefer_stubs=False):
|
def goto_definitions(self, **kwargs):
|
||||||
leaf = self._module_node.get_name_of_position(self._pos)
|
# Deprecated, will be removed.
|
||||||
|
return self.infer(*self._pos, **kwargs)
|
||||||
|
|
||||||
|
def _goto_definitions(self, line, column, only_stubs=False, prefer_stubs=False):
|
||||||
|
pos = line, column
|
||||||
|
leaf = self._module_node.get_name_of_position(pos)
|
||||||
if leaf is None:
|
if leaf is None:
|
||||||
leaf = self._module_node.get_leaf_for_position(self._pos)
|
leaf = self._module_node.get_leaf_for_position(pos)
|
||||||
if leaf is None or leaf.type == 'string':
|
if leaf is None or leaf.type == 'string':
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -265,6 +271,12 @@ class Script(object):
|
|||||||
return helpers.sorted_definitions(set(defs))
|
return helpers.sorted_definitions(set(defs))
|
||||||
|
|
||||||
def goto_assignments(self, follow_imports=False, follow_builtin_imports=False, **kwargs):
|
def goto_assignments(self, follow_imports=False, follow_builtin_imports=False, **kwargs):
|
||||||
|
return self.goto(*self._pos,
|
||||||
|
follow_imports=follow_imports,
|
||||||
|
follow_builtin_imports=follow_builtin_imports,
|
||||||
|
**kwargs)
|
||||||
|
|
||||||
|
def goto(self, line=None, column=None, **kwargs):
|
||||||
"""
|
"""
|
||||||
Return the first definition found, while optionally following imports.
|
Return the first definition found, while optionally following imports.
|
||||||
Multiple objects may be returned, because Python itself is a
|
Multiple objects may be returned, because Python itself is a
|
||||||
@@ -282,9 +294,9 @@ class Script(object):
|
|||||||
:rtype: list of :class:`classes.Definition`
|
:rtype: list of :class:`classes.Definition`
|
||||||
"""
|
"""
|
||||||
with debug.increase_indent_cm('goto_assignments'):
|
with debug.increase_indent_cm('goto_assignments'):
|
||||||
return self._goto_assignments(follow_imports, follow_builtin_imports, **kwargs)
|
return self._goto_assignments(line, column, **kwargs)
|
||||||
|
|
||||||
def _goto_assignments(self, follow_imports, follow_builtin_imports,
|
def _goto_assignments(self, line, column, follow_imports, follow_builtin_imports,
|
||||||
only_stubs=False, prefer_stubs=False):
|
only_stubs=False, prefer_stubs=False):
|
||||||
def filter_follow_imports(names):
|
def filter_follow_imports(names):
|
||||||
for name in names:
|
for name in names:
|
||||||
@@ -304,7 +316,7 @@ class Script(object):
|
|||||||
else:
|
else:
|
||||||
yield name
|
yield name
|
||||||
|
|
||||||
tree_name = self._module_node.get_name_of_position(self._pos)
|
tree_name = self._module_node.get_name_of_position((line, column))
|
||||||
if tree_name is None:
|
if tree_name is None:
|
||||||
# Without a name we really just want to jump to the result e.g.
|
# Without a name we really just want to jump to the result e.g.
|
||||||
# executed by `foo()`, if we the cursor is after `)`.
|
# executed by `foo()`, if we the cursor is after `)`.
|
||||||
|
|||||||
Reference in New Issue
Block a user