From 160ef28126f692c35786865eab156263c696c9cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Wed, 18 Mar 2020 14:21:49 -0500 Subject: [PATCH 1/2] Remove slash and star from positional arguments in snippets --- pyls/plugins/jedi_completion.py | 7 ++++--- test/plugins/test_completion.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pyls/plugins/jedi_completion.py b/pyls/plugins/jedi_completion.py index 53973b7a..ae895a0c 100644 --- a/pyls/plugins/jedi_completion.py +++ b/pyls/plugins/jedi_completion.py @@ -140,15 +140,16 @@ def _format_completion(d, include_params=True): if (include_params and hasattr(d, 'params') and d.params and not is_exception_class(d.name)): - positional_args = [param for param in d.params if '=' not in param.description] + positional_args = [param for param in d.params + if '=' not in param.description or + param.name in {'/', '*'}] if len(positional_args) > 1: # For completions with params, we can generate a snippet instead completion['insertTextFormat'] = lsp.InsertTextFormat.Snippet snippet = d.name + '(' for i, param in enumerate(positional_args): - name = param.name if param.name != '/' else '\\/' - snippet += '${%s:%s}' % (i + 1, name) + snippet += '${%s:%s}' % (i + 1, param.name) if i < len(positional_args) - 1: snippet += ', ' snippet += ')$0' diff --git a/test/plugins/test_completion.py b/test/plugins/test_completion.py index 16444bdf..57caa8b3 100644 --- a/test/plugins/test_completion.py +++ b/test/plugins/test_completion.py @@ -200,7 +200,7 @@ def test_snippet_parsing(config): 'completion': {'completionItem': {'snippetSupport': True}}} config.update({'plugins': {'jedi_completion': {'include_params': True}}}) completions = pyls_jedi_completions(config, doc, completion_position) - out = 'logical_and(${1:x1}, ${2:x2}, ${3:\\/}, ${4:*})$0' + out = 'logical_and(${1:x1}, ${2:x2})$0' assert completions[0]['insertText'] == out From d7d0c38a4c689d6ddb5d70cdfff11d43ab1c0b80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Wed, 18 Mar 2020 14:24:42 -0500 Subject: [PATCH 2/2] Minor issue correction --- pyls/plugins/jedi_completion.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyls/plugins/jedi_completion.py b/pyls/plugins/jedi_completion.py index ae895a0c..caa543a1 100644 --- a/pyls/plugins/jedi_completion.py +++ b/pyls/plugins/jedi_completion.py @@ -141,8 +141,8 @@ def _format_completion(d, include_params=True): if (include_params and hasattr(d, 'params') and d.params and not is_exception_class(d.name)): positional_args = [param for param in d.params - if '=' not in param.description or - param.name in {'/', '*'}] + if '=' not in param.description and + param.name not in {'/', '*'}] if len(positional_args) > 1: # For completions with params, we can generate a snippet instead