Care better about stubs for code search

This commit is contained in:
Dave Halter
2020-03-08 13:16:06 +01:00
parent e46e1269a2
commit d3e3021a3d
4 changed files with 28 additions and 16 deletions

View File

@@ -20,7 +20,7 @@ from jedi.inference.helpers import infer_call_of_leaf, parse_dotted_names
from jedi.inference.context import get_global_filters
from jedi.inference.value import TreeInstance, ModuleValue
from jedi.inference.names import ParamNameWrapper
from jedi.inference.gradual.conversion import convert_values
from jedi.inference.gradual.conversion import convert_values, convert_names
from jedi.parser_utils import cut_value_at_position
from jedi.plugins import plugin_manager
@@ -577,7 +577,7 @@ def _complete_getattr(user_context, instance):
def search_in_module(inference_state, module_context, names, wanted_names,
wanted_type, complete=False, fuzzy=False,
ignore_imports=False):
ignore_imports=False, convert=False):
for s in wanted_names[:-1]:
new_names = []
for n in names:
@@ -597,6 +597,10 @@ def search_in_module(inference_state, module_context, names, wanted_names,
string = n.string_name.lower()
if complete and helpers.match(string, last_name, fuzzy=fuzzy) \
or not complete and string == last_name:
def_ = classes.Definition(inference_state, n)
if not wanted_type or wanted_type == def_.type:
yield def_
names = [n]
if convert:
names = convert_names(names)
for n2 in names:
def_ = classes.Definition(inference_state, n2)
if not wanted_type or wanted_type == def_.type:
yield def_