mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-24 06:11:32 +08:00
Filters for compiled objects and also FunctionExecution.
This commit is contained in:
@@ -32,12 +32,12 @@ class ParserTreeFilter(AbstractFilter):
|
||||
def _filter(self, names, until_position):
|
||||
names = super(ParserTreeFilter, self)._filter(names, until_position)
|
||||
names = [n for n in names if n.is_definition()]
|
||||
names = [n for n in names if n.get_parent_scope() == self._parser_scope]
|
||||
names = [n for n in names if n.parent.get_parent_scope() == self._parser_scope]
|
||||
return names
|
||||
|
||||
def get(self, name, until_position=None):
|
||||
try:
|
||||
names = self._used_names[name]
|
||||
names = self._used_names[str(name)]
|
||||
except KeyError:
|
||||
return []
|
||||
|
||||
@@ -45,3 +45,14 @@ class ParserTreeFilter(AbstractFilter):
|
||||
|
||||
def values(self, name, until_position=None):
|
||||
return self._filter(self._used_names.values(), until_position)
|
||||
|
||||
|
||||
class FunctionExecutionFilter(ParserTreeFilter):
|
||||
def __init__(self, parser_scope, executed_function):
|
||||
super(FunctionExecutionFilter, self).__init__(parser_scope)
|
||||
self._executed_function = executed_function
|
||||
|
||||
def _filter(self, names, until_position):
|
||||
result = super(FunctionExecutionFilter, self)._filter(names, until_position)
|
||||
|
||||
return [self._executed_function.name_for_position(name.start_pos) for name in result]
|
||||
|
||||
Reference in New Issue
Block a user