1
0
forked from VimPlug/jedi

Actually implement symbol search for projects

This commit is contained in:
Dave Halter
2020-03-06 11:15:34 +01:00
parent ebb9df07f3
commit e6bdaea73e
2 changed files with 20 additions and 5 deletions

View File

@@ -6,10 +6,13 @@ from jedi._compatibility import FileNotFoundError, PermissionError, IsADirectory
from jedi._compatibility import scandir
from jedi.api.environment import get_cached_default_environment, create_environment
from jedi.api.exceptions import WrongVersion
from jedi.api.classes import Definition
from jedi._compatibility import force_unicode
from jedi.inference.sys_path import discover_buildout_paths
from jedi.inference.cache import inference_state_as_method_param_cache
from jedi.inference.references import recurse_find_python_files
from jedi.inference.references import recurse_find_python_files, search_in_file_ios
from jedi.inference.helpers import get_module_names
from jedi.inference import InferenceState
from jedi.file_io import FolderIO
from jedi.common.utils import traverse_parents
@@ -172,9 +175,11 @@ class Project(object):
"""
Returns a generator of names
"""
for file_io in recurse_find_python_files(FolderIO(self._path)):
for name in get_names(all_scopes=True):
yield name
inference_state = InferenceState(self)
file_io_iterator = recurse_find_python_files(FolderIO(self._path))
for module_context in search_in_file_ios(inference_state, file_io_iterator, string):
for name in get_module_names(module_context.ree_node, all_scopes=all_scopes):
yield Definition(inference_state, module_context.create_name(name))
def __repr__(self):
return '<%s: %s>' % (self.__class__.__name__, self._path)