forked from VimPlug/jedi
removed keyword docstring functionality for goto_definitions - will be reintroduced with a Script.documentation function
This commit is contained in:
@@ -322,16 +322,11 @@ class Script(object):
|
||||
goto_path = self._user_context.get_path_under_cursor()
|
||||
|
||||
context = self._user_context.get_context()
|
||||
scopes = set()
|
||||
lower_priority_operators = ('()', '(', ',')
|
||||
definitions = set()
|
||||
"""Operators that could hide callee."""
|
||||
if next(context) in ('class', 'def'):
|
||||
scopes = set([self._parser.user_scope()])
|
||||
elif not goto_path:
|
||||
op = self._user_context.get_operator_under_cursor()
|
||||
if op and op not in lower_priority_operators:
|
||||
scopes = set([keywords.get_operator(op, self._pos)])
|
||||
|
||||
definitions = set([self._parser.user_scope()])
|
||||
else:
|
||||
# Fetch definition of callee, if there's no path otherwise.
|
||||
if not goto_path:
|
||||
(call, _) = self._func_call_and_param_index()
|
||||
@@ -345,18 +340,14 @@ class Script(object):
|
||||
# then try to find the path again
|
||||
goto_path = self._user_context.get_path_under_cursor()
|
||||
|
||||
if not scopes:
|
||||
if not definitions:
|
||||
if goto_path:
|
||||
scopes = set(self._prepare_goto(goto_path))
|
||||
elif op in lower_priority_operators:
|
||||
scopes = set([keywords.get_operator(op, self._pos)])
|
||||
definitions = set(self._prepare_goto(goto_path))
|
||||
else:
|
||||
definitions = set([])
|
||||
|
||||
scopes = resolve_import_paths(scopes)
|
||||
|
||||
# add keywords
|
||||
scopes |= keywords.keywords(string=goto_path, pos=self._pos)
|
||||
|
||||
d = set([classes.Definition(self._evaluator, s) for s in scopes
|
||||
definitions = resolve_import_paths(definitions)
|
||||
d = set([classes.Definition(self._evaluator, s) for s in definitions
|
||||
if s is not imports.ImportPath.GlobalNamespace])
|
||||
return self._sorted_defs(d)
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ import jedi
|
||||
|
||||
|
||||
def test_is_keyword():
|
||||
results = Script('import ', 1, 1, None).goto_definitions()
|
||||
assert len(results) == 1 and results[0].is_keyword is True
|
||||
#results = Script('import ', 1, 1, None).goto_definitions()
|
||||
#assert len(results) == 1 and results[0].is_keyword is True
|
||||
results = Script('str', 1, 1, None).goto_definitions()
|
||||
assert len(results) == 1 and results[0].is_keyword is False
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ Test of keywords and ``jedi.keywords``
|
||||
import jedi
|
||||
from jedi import Script, common
|
||||
|
||||
|
||||
def test_goto_assignments_keyword():
|
||||
"""
|
||||
Bug: goto assignments on ``in`` used to raise AttributeError::
|
||||
@@ -12,35 +13,16 @@ def test_goto_assignments_keyword():
|
||||
"""
|
||||
Script('in').goto_assignments()
|
||||
|
||||
def test_keyword_doc():
|
||||
r = list(Script("or", 1, 1).goto_definitions())
|
||||
assert len(r) == 1
|
||||
assert len(r[0].doc) > 100
|
||||
|
||||
r = list(Script("asfdasfd", 1, 1).goto_definitions())
|
||||
assert len(r) == 0
|
||||
|
||||
k = Script("fro").completions()[0]
|
||||
imp_start = '\nThe ``import'
|
||||
assert k.raw_doc.startswith(imp_start)
|
||||
assert k.doc.startswith(imp_start)
|
||||
|
||||
def test_keyword():
|
||||
""" github jedi-vim issue #44 """
|
||||
defs = Script("print").goto_definitions()
|
||||
assert [d.doc for d in defs]
|
||||
|
||||
defs = Script("import").goto_definitions()
|
||||
assert len(defs) == 1 and [1 for d in defs if d.doc]
|
||||
# unrelated to #44
|
||||
defs = Script("import").goto_assignments()
|
||||
assert len(defs) == 0
|
||||
completions = Script("import", 1,1).completions()
|
||||
completions = Script("import", 1, 1).completions()
|
||||
assert len(completions) == 0
|
||||
with common.ignored(jedi.NotFoundError): # TODO shouldn't throw that.
|
||||
defs = Script("assert").goto_definitions()
|
||||
assert len(defs) == 1
|
||||
|
||||
def test_lambda():
|
||||
defs = Script('lambda x: x', column=0).goto_definitions()
|
||||
assert [d.type for d in defs] == ['keyword']
|
||||
|
||||
@@ -55,11 +55,6 @@ class TestRegression(TestCase):
|
||||
|
||||
self.assertRaises(jedi.NotFoundError, get_def, cls)
|
||||
|
||||
def test_operator_doc(self):
|
||||
r = list(Script("a == b", 1, 3).goto_definitions())
|
||||
assert len(r) == 1
|
||||
assert len(r[0].doc) > 100
|
||||
|
||||
def test_goto_definition_at_zero(self):
|
||||
assert Script("a", 1, 1).goto_definitions() == []
|
||||
s = Script("str", 1, 1).goto_definitions()
|
||||
@@ -142,7 +137,8 @@ class TestRegression(TestCase):
|
||||
break
|
||||
column = len(line) - len(after_cursor)
|
||||
defs = Script(source, i + 1, column).goto_definitions()
|
||||
self.assertEqual([d.name for d in defs], names)
|
||||
print(defs)
|
||||
assert [d.name for d in defs] == names
|
||||
|
||||
def test_backslash_continuation(self):
|
||||
"""
|
||||
@@ -163,7 +159,7 @@ class TestRegression(TestCase):
|
||||
x = 0
|
||||
a = \
|
||||
[1, 2, 3, 4, 5, 6, 7, 8, 9, (x)] # <-- here
|
||||
""", '(x)] # <-- here', [None])
|
||||
""", '(x)] # <-- here', [])
|
||||
|
||||
def test_generator(self):
|
||||
# Did have some problems with the usage of generator completions this
|
||||
|
||||
Reference in New Issue
Block a user