1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
From 40afab312a6bf0dcd620c82e59555ea2967aacdf Mon Sep 17 00:00:00 2001
From: bnavigator <code@bnavigator.de>
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 6468dd83..69a09fe9 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 12782990..99d2b312 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 <code@bnavigator.de>
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 69a09fe9..ef8e7fb8 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
|