mirror of
https://github.com/davidhalter/jedi.git
synced 2026-03-05 04:44:15 +08:00
Goto for stubs is now working better
This commit is contained in:
@@ -85,7 +85,7 @@ from jedi.evaluate.context.iterable import CompForContext
|
|||||||
from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \
|
from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \
|
||||||
eval_node, check_tuple_assignments
|
eval_node, check_tuple_assignments
|
||||||
from jedi.evaluate.gradual.stub_context import with_stub_context_if_possible, \
|
from jedi.evaluate.gradual.stub_context import with_stub_context_if_possible, \
|
||||||
stub_to_actual_context_set, goto_with_stubs_if_possible
|
stub_to_actual_context_set, goto_with_stubs_if_possible, goto_non_stub
|
||||||
|
|
||||||
|
|
||||||
def _execute(context, arguments):
|
def _execute(context, arguments):
|
||||||
@@ -342,8 +342,11 @@ class Evaluator(object):
|
|||||||
elif type_ == 'param':
|
elif type_ == 'param':
|
||||||
return [ParamName(context, name)]
|
return [ParamName(context, name)]
|
||||||
elif type_ in ('funcdef', 'classdef'):
|
elif type_ in ('funcdef', 'classdef'):
|
||||||
n = TreeNameDefinition(context, name)
|
if context.is_stub():
|
||||||
return goto_with_stubs_if_possible(n)
|
return goto_non_stub(context, name)
|
||||||
|
else:
|
||||||
|
n = TreeNameDefinition(context, name)
|
||||||
|
return goto_with_stubs_if_possible(n)
|
||||||
elif type_ in ('import_from', 'import_name'):
|
elif type_ in ('import_from', 'import_name'):
|
||||||
module_names = imports.infer_import(context, name, is_goto=True)
|
module_names = imports.infer_import(context, name, is_goto=True)
|
||||||
return module_names
|
return module_names
|
||||||
|
|||||||
@@ -303,6 +303,11 @@ def goto_with_stubs_if_possible(name):
|
|||||||
] or [name]
|
] or [name]
|
||||||
|
|
||||||
|
|
||||||
|
def goto_non_stub(parent_context, tree_name):
|
||||||
|
contexts = stub_to_actual_context_set(parent_context)
|
||||||
|
return contexts.py__getattribute__(tree_name, is_goto=True)
|
||||||
|
|
||||||
|
|
||||||
def stub_to_actual_context_set(stub_context):
|
def stub_to_actual_context_set(stub_context):
|
||||||
qualified_names = stub_context.get_qualified_names()
|
qualified_names = stub_context.get_qualified_names()
|
||||||
if qualified_names is None:
|
if qualified_names is None:
|
||||||
|
|||||||
Reference in New Issue
Block a user