mirror of
https://github.com/davidhalter/jedi.git
synced 2026-02-20 02:18:26 +08:00
All modules now have a code_lines attribute, see #1062
This commit is contained in:
@@ -120,6 +120,7 @@ class Script(object):
|
||||
)
|
||||
debug.speed('parsed')
|
||||
self._code_lines = parso.split_lines(source)
|
||||
self._code = source
|
||||
line = max(len(self._code_lines), 1) if line is None else line
|
||||
if not (0 < line <= len(self._code_lines)):
|
||||
raise ValueError('`line` parameter is not in a valid range.')
|
||||
@@ -141,7 +142,10 @@ class Script(object):
|
||||
if n is not None:
|
||||
name = n
|
||||
|
||||
module = ModuleContext(self._evaluator, self._module_node, self.path)
|
||||
module = ModuleContext(
|
||||
self._evaluator, self._module_node, self.path,
|
||||
code_lines=self._code_lines
|
||||
)
|
||||
imports.add_module(self._evaluator, name, module)
|
||||
return module
|
||||
|
||||
@@ -374,7 +378,8 @@ class Interpreter(Script):
|
||||
self._evaluator,
|
||||
self._module_node,
|
||||
self.namespaces,
|
||||
path=self.path
|
||||
path=self.path,
|
||||
code_lines=self._code_lines,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -377,8 +377,7 @@ class BaseDefinition(object):
|
||||
if self.in_builtin_module():
|
||||
return ''
|
||||
|
||||
path = self._name.get_root_context().py__file__()
|
||||
lines = parser_cache[self._evaluator.grammar._hashed][path].lines
|
||||
lines = self._name.get_root_context().code_lines
|
||||
|
||||
index = self._name.start_pos[0] - 1
|
||||
start_index = max(index - before, 0)
|
||||
|
||||
@@ -21,15 +21,18 @@ class NamespaceObject(object):
|
||||
|
||||
|
||||
class MixedModuleContext(Context):
|
||||
resets_positions = True
|
||||
type = 'mixed_module'
|
||||
|
||||
def __init__(self, evaluator, tree_module, namespaces, path):
|
||||
def __init__(self, evaluator, tree_module, namespaces, path, code_lines):
|
||||
self.evaluator = evaluator
|
||||
self._namespaces = namespaces
|
||||
|
||||
self._namespace_objects = [NamespaceObject(n) for n in namespaces]
|
||||
self._module_context = ModuleContext(evaluator, tree_module, path=path)
|
||||
self._module_context = ModuleContext(
|
||||
evaluator, tree_module,
|
||||
path=path,
|
||||
code_lines=code_lines
|
||||
)
|
||||
self.tree_node = tree_module
|
||||
|
||||
def get_node(self):
|
||||
@@ -50,5 +53,9 @@ class MixedModuleContext(Context):
|
||||
for filter in mixed_object.get_filters(*args, **kwargs):
|
||||
yield filter
|
||||
|
||||
@property
|
||||
def code_lines(self):
|
||||
return self._module_context.code_lines
|
||||
|
||||
def __getattr__(self, name):
|
||||
return getattr(self._module_context, name)
|
||||
|
||||
Reference in New Issue
Block a user