From 7d4a1fb06c6862ab502d3a4e5c10c41b6702b0d6 Mon Sep 17 00:00:00 2001 From: Jack Wickham Date: Thu, 31 Oct 2019 14:55:42 +0000 Subject: [PATCH 1/6] Don't go to definition of builtin modules --- pyls/plugins/definition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyls/plugins/definition.py b/pyls/plugins/definition.py index 69109afd..01277d1b 100644 --- a/pyls/plugins/definition.py +++ b/pyls/plugins/definition.py @@ -21,5 +21,5 @@ def pyls_definitions(config, document, position): } } for d in definitions - if d.is_definition() and d.line is not None and d.column is not None and d.module_path is not None + if d.is_definition() and d.line is not None and d.column is not None and d.module_path is not None and not d.in_builtin_module() ] From 63962b34d9fa6a30587ff9c30e7b73399d0344df Mon Sep 17 00:00:00 2001 From: Jack Wickham Date: Thu, 31 Oct 2019 15:47:57 +0000 Subject: [PATCH 2/6] Update test to verify that builtins don't have definitions --- test/plugins/test_definitions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/plugins/test_definitions.py b/test/plugins/test_definitions.py index 3faa7cfb..43e9dc52 100644 --- a/test/plugins/test_definitions.py +++ b/test/plugins/test_definitions.py @@ -40,7 +40,7 @@ def test_builtin_definition(config): # No go-to def for builtins doc = Document(DOC_URI, DOC) - assert len(pyls_definitions(config, doc, cursor_pos)) == 1 + assert [] == pyls_definitions(config, doc, cursor_pos) def test_assignment(config): From e125c0f48f9dfab116d507a98c9198120be09068 Mon Sep 17 00:00:00 2001 From: Jack Wickham Date: Thu, 31 Oct 2019 15:58:00 +0000 Subject: [PATCH 3/6] Fix style violations --- pyls/plugins/definition.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyls/plugins/definition.py b/pyls/plugins/definition.py index 01277d1b..b4725524 100644 --- a/pyls/plugins/definition.py +++ b/pyls/plugins/definition.py @@ -21,5 +21,6 @@ def pyls_definitions(config, document, position): } } for d in definitions - if d.is_definition() and d.line is not None and d.column is not None and d.module_path is not None and not d.in_builtin_module() + if d.is_definition() and d.line is not None and d.column is not None and d.module_path is not None + and not d.in_builtin_module() ] From 0a4593896af7f13eb6d16a0cd08bdade69e116dc Mon Sep 17 00:00:00 2001 From: Jack Wickham Date: Thu, 31 Oct 2019 16:03:53 +0000 Subject: [PATCH 4/6] Also fix pycodestyle issue --- pyls/plugins/definition.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyls/plugins/definition.py b/pyls/plugins/definition.py index b4725524..fa96deaa 100644 --- a/pyls/plugins/definition.py +++ b/pyls/plugins/definition.py @@ -21,6 +21,6 @@ def pyls_definitions(config, document, position): } } for d in definitions - if d.is_definition() and d.line is not None and d.column is not None and d.module_path is not None - and not d.in_builtin_module() + if d.is_definition() and d.line is not None and d.column is not None and + d.module_path is not None and not d.in_builtin_module() ] From e6345e73bab9ecbba053e62bd08e4f90cbd33f7b Mon Sep 17 00:00:00 2001 From: Jack Wickham Date: Thu, 31 Oct 2019 16:31:40 +0000 Subject: [PATCH 5/6] Factor internal definition filter into separate function --- pyls/plugins/definition.py | 13 ++++++++++--- test/plugins/test_definitions.py | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pyls/plugins/definition.py b/pyls/plugins/definition.py index fa96deaa..6b2e041c 100644 --- a/pyls/plugins/definition.py +++ b/pyls/plugins/definition.py @@ -20,7 +20,14 @@ def pyls_definitions(config, document, position): 'end': {'line': d.line - 1, 'character': d.column + len(d.name)}, } } - for d in definitions - if d.is_definition() and d.line is not None and d.column is not None and - d.module_path is not None and not d.in_builtin_module() + for d in definitions if d.is_definition() and not_internal_definition(d) ] + + +def not_internal_definition(definition): + return ( + definition.line is not None and + definition.column is not None and + definition.module_path is not None and + not definition.in_builtin_module() + ) diff --git a/test/plugins/test_definitions.py b/test/plugins/test_definitions.py index 43e9dc52..e2db9c6f 100644 --- a/test/plugins/test_definitions.py +++ b/test/plugins/test_definitions.py @@ -40,7 +40,7 @@ def test_builtin_definition(config): # No go-to def for builtins doc = Document(DOC_URI, DOC) - assert [] == pyls_definitions(config, doc, cursor_pos) + assert not pyls_definitions(config, doc, cursor_pos) def test_assignment(config): From 6b4a5dbbbcf274e434a4236e1983402aba7f5272 Mon Sep 17 00:00:00 2001 From: Jack Wickham Date: Thu, 31 Oct 2019 16:42:33 +0000 Subject: [PATCH 6/6] Prefix internal function with underscore --- pyls/plugins/definition.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyls/plugins/definition.py b/pyls/plugins/definition.py index 6b2e041c..8ec3b1ad 100644 --- a/pyls/plugins/definition.py +++ b/pyls/plugins/definition.py @@ -20,11 +20,11 @@ def pyls_definitions(config, document, position): 'end': {'line': d.line - 1, 'character': d.column + len(d.name)}, } } - for d in definitions if d.is_definition() and not_internal_definition(d) + for d in definitions if d.is_definition() and _not_internal_definition(d) ] -def not_internal_definition(definition): +def _not_internal_definition(definition): return ( definition.line is not None and definition.column is not None and