Skip to content

Commit b08891f

Browse files
steff456ccordoba12
authored andcommitted
PR: Fix snippet parsing when a slash character is present (#701)
1 parent 803d8a5 commit b08891f

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

pyls/plugins/jedi_completion.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ def _format_completion(d, include_params=True):
9898
completion['insertTextFormat'] = lsp.InsertTextFormat.Snippet
9999
snippet = d.name + '('
100100
for i, param in enumerate(positional_args):
101-
snippet += '${%s:%s}' % (i + 1, param.name)
101+
name = param.name if param.name != '/' else '\\/'
102+
snippet += '${%s:%s}' % (i + 1, name)
102103
if i < len(positional_args) - 1:
103104
snippet += ', '
104105
snippet += ')$0'

test/plugins/test_completion.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,18 @@ def test_snippets_completion(config):
174174
assert completions[0]['insertText'] == out
175175

176176

177+
def test_snippet_parsing(config):
178+
doc = 'import numpy as np\nnp.logical_and'
179+
completion_position = {'line': 1, 'character': 14}
180+
doc = Document(DOC_URI, doc)
181+
config.capabilities['textDocument'] = {
182+
'completion': {'completionItem': {'snippetSupport': True}}}
183+
config.update({'plugins': {'jedi_completion': {'include_params': True}}})
184+
completions = pyls_jedi_completions(config, doc, completion_position)
185+
out = 'logical_and(${1:x1}, ${2:x2}, ${3:\\/}, ${4:*})$0'
186+
assert completions[0]['insertText'] == out
187+
188+
177189
def test_multiline_snippets(config):
178190
document = 'from datetime import\\\n date,\\\n datetime \na=date'
179191
doc = Document(DOC_URI, document)

0 commit comments

Comments
 (0)