@@ -140,5 +140,47 @@ Describe lsp#omni
140
140
let got = lsp#omni#get_vim_completion_items(options)
141
141
Assert Equals(got, want)
142
142
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
143
185
End
144
186
End
0 commit comments