Skip to content

Commit 90d61f1

Browse files
fix snippet (#1051)
* fix snippet * add snippet test
1 parent 6038748 commit 90d61f1

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

autoload/lsp/omni.vim

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ function! lsp#omni#get_vim_completion_items(options) abort
299299
endif
300300

301301
if l:expandable
302+
let l:vim_complete_item['word'] = lsp#utils#make_valid_word(substitute(l:vim_complete_item['word'], '\$[0-9]\+\|\${\%(\\.\|[^}]\)\+}', '', 'g'))
302303
let l:vim_complete_item['abbr'] = l:completion_item['label'] . '~'
303304
else
304305
let l:vim_complete_item['abbr'] = l:completion_item['label']

test/lsp/omni.vimspec

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,5 +140,47 @@ Describe lsp#omni
140140
let got = lsp#omni#get_vim_completion_items(options)
141141
Assert Equals(got, want)
142142
End
143+
144+
It should return correct items for snippets
145+
if !has('patch-8.0.1493')
146+
Skip This test requires 'patch-8.0.1493'
147+
endif
148+
149+
let item = {
150+
\ "label": "sysout",
151+
\ "insertText": "System.out.println(${0});",
152+
\ "kind": 15,
153+
\ "insertTextFormat": 2,
154+
\ "documentation": "System.out.println();",
155+
\ "detail": "print to standard out"
156+
\ }
157+
158+
let options = {
159+
\ 'server': { 'name': 'dummy-server' },
160+
\ 'position': { 'line': 1, 'character': 1 },
161+
\ 'response': { 'result': [item] },
162+
\}
163+
164+
let want = {
165+
\ 'items': [{
166+
\ 'word': 'System.out.println',
167+
\ 'abbr': 'sysout~',
168+
\ 'icase': 1,
169+
\ 'dup': 1,
170+
\ 'empty': 1,
171+
\ 'kind': 'snippet',
172+
\ 'user_data': '{"vim-lsp/key":"0"}',
173+
\ }],
174+
\ 'incomplete': 0,
175+
\}
176+
177+
let got = lsp#omni#get_vim_completion_items(options)
178+
Assert Equals(got, want)
179+
Assert Equals(lsp#omni#get_managed_user_data_from_completed_item(got['items'][0]), {
180+
\ 'server_name': 'dummy-server',
181+
\ 'completion_item': item,
182+
\ 'complete_position': { 'line': 1, 'character': 1 }
183+
\ })
184+
End
143185
End
144186
End

0 commit comments

Comments
 (0)