8000 fix completion sorting (#246) · mirror-dump/python-lsp-server@4216689 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4216689

Browse files
ferozcogatesn
authored andcommitted
fix completion sorting (python-lsp#246)
* fix completion sorting * addressed comments
1 parent 12b93fe commit 4216689

File tree

3 files changed

+8
-17
lines changed

3 files changed

+8
-17
lines changed

pyls/plugins/jedi_completion.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,24 @@ def pyls_completions(document, position):
2020

2121
def _label(definition):
2222
if definition.type in ('function', 'method'):
23-
params = ", ".join(param.name for param in definition.params)
24-
return "{}({})".format(definition.name, params)
23+
params = ', '.join(param.name for param in definition.params)
24+
return '{}({})'.format(definition.name, params)
2525

2626
return definition.name
2727

2828

2929
def _detail(definition):
30-
return "builtin" if definition.in_builtin_module() else definition.parent().full_name or ""
30+
return definition.parent().full_name or ''
3131

3232

3333
def _sort_text(definition):
3434
""" Ensure builtins appear at the bottom.
3535
Description is of format <type>: <module>.<item>
3636
"""
37-
if definition.in_builtin_module():
38-
# It's a builtin, put it last
39-
return 'z' + definition.name
4037

41-
if definition.name.startswith("_"):
42-
# It's a 'hidden' func, put it next last
43-
return 'y' + definition.name
44-
45-
# Else put it at the front
46-
return 'a' + definition.name
38+
# If its 'hidden', put it next last
39+
prefix = 'z{}' if definition.name.startswith('_') else 'a{}'
40+
return prefix.format(definition.name)
4741

4842

4943
def _kind(d):

pyls/plugins/rope_completion.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,10 @@ def _sort_text(definition):
5252
""" Ensure builtins appear at the bottom.
5353
Description is of format <type>: <module>.<item>
5454
"""
55-
if definition.scope == 'builtin':
56-
return 'z' + definition.name
57-
5855
if definition.name.startswith("_"):
5956
# It's a 'hidden' func, put it next last
57+
return 'z' + definition.name
58+
elif definition.scope == 'builtin':
6059
return 'y' + definition.name
6160

6261
# Else put it at the front

test/plugins/test_completion.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,5 @@ def test_jedi_completion_ordering():
6464

6565
items = {c['label']: c['sortText'] for c in completions}
6666

67-
# Assert that builtins come after our own functions even if alphabetically they're before
68-
assert items['hello()'] < items['dict']
6967
# And that 'hidden' functions come after unhidden ones
7068
assert items['hello()'] < items['_a_hello()']

0 commit comments

Comments
 (0)
0