From 40afab312a6bf0dcd620c82e59555ea2967aacdf Mon Sep 17 00:00:00 2001 From: bnavigator Date: Tue, 5 Jan 2021 01:17:33 +0100 Subject: [PATCH 1/2] bump jedi compatibility: compare to Path-like object --- pyls/plugins/symbols.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyls/plugins/symbols.py b/pyls/plugins/symbols.py index 6468dd8..69a09fe 100644 --- a/pyls/plugins/symbols.py +++ b/pyls/plugins/symbols.py @@ -37,7 +37,7 @@ def pyls_document_symbols(config, document): not sym_full_name.startswith('__main__')): continue - if _include_def(d) and document.path == d.module_path: + if _include_def(d) and os.path.samefile(document.path, d.module_path): tuple_range = _tuple_range(d) if tuple_range in exclude: continue diff --git a/setup.py b/setup.py index 1278299..99d2b31 100755 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ 'configparser; python_version<"3.0"', 'future>=0.14.0; python_version<"3"', 'backports.functools_lru_cache; python_version<"3.2"', - 'jedi>=0.17.2,<0.18.0', + 'jedi>=0.17.2,<0.19.0', 'python-jsonrpc-server>=0.4.0', 'pluggy', 'ujson<=2.0.3 ; platform_system!="Windows" and python_version<"3.0"', From e442467312fe967bff5f893b7e3f92da133182c8 Mon Sep 17 00:00:00 2001 From: bnavigator Date: Tue, 5 Jan 2021 01:37:25 +0100 Subject: [PATCH 2/2] Curse you Python 2 on Windows: os.path.samefile not implemented --- pyls/plugins/symbols.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pyls/plugins/symbols.py b/pyls/plugins/symbols.py index 69a09fe..ef8e7fb 100644 --- a/pyls/plugins/symbols.py +++ b/pyls/plugins/symbols.py @@ -36,8 +36,14 @@ def pyls_document_symbols(config, document): if (not sym_full_name.startswith(module_name) and not sym_full_name.startswith('__main__')): continue - - if _include_def(d) and os.path.samefile(document.path, d.module_path): + try: + docismodule = os.path.samefile(document.path, d.module_path) + except AttributeError: + # Python 2 on Windows has no .samefile, but then these are + # strings for sure + docismodule = document.path == d.module_path + + if _include_def(d) and docismodule: tuple_range = _tuple_range(d) if tuple_range in exclude: continue