1
0
forked from VimPlug/jedi

fix Definition.name API for params

This commit is contained in:
Dave Halter
2014-03-13 22:48:02 +01:00
parent eaa56c47cc
commit 2ae5dad78b
3 changed files with 12 additions and 7 deletions

View File

@@ -138,7 +138,10 @@ class Script(object):
for call_def in self.call_signatures():
if not isinstance(call_def.module, compiled.CompiledObject):
for p in call_def.params:
completions.append((p.get_name(), p))
# Allow access on _definition here, because it's a
# public API and we don't want to make the internal
# Name object public.
completions.append((p._definition.get_name(), p))
if not path and not isinstance(user_stmt, pr.Import):
# add keywords

View File

@@ -451,11 +451,12 @@ class Definition(BaseDefinition):
return None
elif isinstance(d, pr.Statement):
try:
name = d.assignment_details[0][1].values[0][0].name.names[-1]
expression_list = d.assignment_details[0][0]
name = expression_list[0].name.names[-1]
except IndexError:
if isinstance(d, pr.Param):
try:
name = d.expression_list()[0].name.names[-1]
return unicode(d.expression_list()[0].name)
except IndexError:
pass
return None

View File

@@ -8,11 +8,9 @@ import os
from jedi._compatibility import builtins as _builtins
from jedi import debug
from jedi.parser.representation import Base, IsScope
from jedi.cache import underscore_memoization
from jedi.evaluate.sys_path import get_sys_path
from jedi.parser.representation import Param
from jedi.parser.representation import SubModule
from jedi.parser.representation import Param, SubModule, Base, IsScope, Operator
from jedi.evaluate.helpers import FakeName
from . import fake
@@ -38,7 +36,10 @@ class CompiledObject(Base):
# object
start_pos, end_pos = (0, 0), (0, 0)
for p in tokens:
params.append(Param(module, [FakeName(p.strip())], start_pos,
parts = [FakeName(part) for part in p.strip().split('=')]
if len(parts) >= 2:
parts.insert(1, Operator('=', (0, 0)))
params.append(Param(module, parts, start_pos,
end_pos, builtin))
return params