mirror of
https://github.com/prabirshrestha/vim-lsp.git
synced 2026-06-09 15:37:30 +02:00
90d61f1114
* fix snippet * add snippet test
187 lines
5.6 KiB
Plaintext
187 lines
5.6 KiB
Plaintext
Describe lsp#omni
|
|
|
|
let g:lsp_get_vim_completion_item_set_kind = 1
|
|
|
|
Before each
|
|
call lsp#omni#_clear_managed_user_data_map()
|
|
End
|
|
|
|
Describe lsp#omni#get_vim_completion_items
|
|
It should return item with proper kind
|
|
let item = {
|
|
\ 'label': 'my-label',
|
|
\ 'documentation': 'my documentation.',
|
|
\ 'detail': 'my-detail',
|
|
\ 'kind': '3'
|
|
\}
|
|
|
|
let options = {
|
|
\ 'server': { 'name': 'dummy-server' },
|
|
\ 'position': lsp#get_position(),
|
|
\ 'response': { 'result': [item] },
|
|
\}
|
|
|
|
let want = {
|
|
\ 'items': [{
|
|
\ 'word': 'my-label',
|
|
\ 'abbr': 'my-label',
|
|
\ 'icase': 1,
|
|
\ 'dup': 1,
|
|
\ 'empty': 1,
|
|
\ 'kind': 'function',
|
|
\ 'user_data': '{"vim-lsp/key":"0"}',
|
|
\ }],
|
|
\ 'incomplete': 0,
|
|
\}
|
|
|
|
Assert Equals(lsp#omni#get_vim_completion_items(options), want)
|
|
End
|
|
|
|
It should get user_data by the item
|
|
if !has('patch-8.0.1493')
|
|
Skip This test requires 'patch-8.0.1493'
|
|
endif
|
|
|
|
let item = {
|
|
\ 'label': 'my-label',
|
|
\ 'documentation': 'my documentation.',
|
|
\ 'detail': 'my-detail',
|
|
\ 'kind': '3',
|
|
\ 'textEdit': {
|
|
\ 'range': {
|
|
\ 'start': {'line': 5, 'character': 0},
|
|
\ 'end': {'line': 5, 'character': 5}
|
|
\ },
|
|
\ 'newText': 'yyy'
|
|
\ }
|
|
\}
|
|
|
|
let options = {
|
|
\ 'server': { 'name': 'dummy-server' },
|
|
\ 'position': { 'line': 1, 'character': 1 },
|
|
\ 'response': { 'result': [item] },
|
|
\}
|
|
|
|
let want = {
|
|
\ 'items': [{
|
|
\ 'word': 'my-label',
|
|
\ 'abbr': 'my-label',
|
|
\ 'icase': 1,
|
|
\ 'dup': 1,
|
|
\ 'empty': 1,
|
|
\ 'kind': 'function',
|
|
\ 'user_data': '{"vim-lsp/key":"0"}',
|
|
\ }],
|
|
\ 'incomplete': 0,
|
|
\}
|
|
|
|
let got = lsp#omni#get_vim_completion_items(options)
|
|
Assert Equals(got, want)
|
|
Assert Equals(lsp#omni#get_managed_user_data_from_completed_item(got['items'][0]), {
|
|
\ 'server_name': 'dummy-server',
|
|
\ 'completion_item': item,
|
|
\ 'complete_position': { 'line': 1, 'character': 1 }
|
|
\ })
|
|
End
|
|
|
|
It should not raise errors
|
|
let item = {
|
|
\ 'label': 'my-label',
|
|
\ 'textEdit': v:null,
|
|
\}
|
|
|
|
let options = {
|
|
\ 'server': { 'name': 'dummy-server' },
|
|
\ 'position': lsp#get_position(),
|
|
\ 'response': { 'result': [item] },
|
|
\}
|
|
|
|
let want = {
|
|
\ 'items': [{
|
|
\ 'word': 'my-label',
|
|
\ 'abbr': 'my-label',
|
|
\ 'icase': 1,
|
|
\ 'dup': 1,
|
|
\ 'empty': 1,
|
|
\ 'kind': '',
|
|
\ 'user_data': '{"vim-lsp/key":"0"}',
|
|
\ }],
|
|
\ 'incomplete': 0,
|
|
\}
|
|
|
|
let got = lsp#omni#get_vim_completion_items(options)
|
|
Assert Equals(got, want)
|
|
|
|
let item = {
|
|
\ 'label': 'my-label',
|
|
\ 'textEdit': v:null,
|
|
\ 'insertText': v:null,
|
|
\}
|
|
|
|
let options = {
|
|
\ 'server': { 'name': 'dummy-server' },
|
|
\ 'position': lsp#get_position(),
|
|
\ 'response': { 'result': [item] },
|
|
\}
|
|
|
|
let want = {
|
|
\ 'items': [{
|
|
\ 'word': 'my-label',
|
|
\ 'abbr': 'my-label',
|
|
\ 'icase': 1,
|
|
\ 'dup': 1,
|
|
\ 'empty': 1,
|
|
\ 'kind': '',
|
|
\ 'user_data': '{"vim-lsp/key":"1"}',
|
|
\ }],
|
|
\ 'incomplete': 0,
|
|
\}
|
|
|
|
let got = lsp#omni#get_vim_completion_items(options)
|
|
Assert Equals(got, want)
|
|
End
|
|
|
|
It should return correct items for snippets
|
|
if !has('patch-8.0.1493')
|
|
Skip This test requires 'patch-8.0.1493'
|
|
endif
|
|
|
|
let item = {
|
|
\ "label": "sysout",
|
|
\ "insertText": "System.out.println(${0});",
|
|
\ "kind": 15,
|
|
\ "insertTextFormat": 2,
|
|
\ "documentation": "System.out.println();",
|
|
\ "detail": "print to standard out"
|
|
\ }
|
|
|
|
let options = {
|
|
\ 'server': { 'name': 'dummy-server' },
|
|
\ 'position': { 'line': 1, 'character': 1 },
|
|
\ 'response': { 'result': [item] },
|
|
\}
|
|
|
|
let want = {
|
|
\ 'items': [{
|
|
\ 'word': 'System.out.println',
|
|
\ 'abbr': 'sysout~',
|
|
\ 'icase': 1,
|
|
\ 'dup': 1,
|
|
\ 'empty': 1,
|
|
\ 'kind': 'snippet',
|
|
\ 'user_data': '{"vim-lsp/key":"0"}',
|
|
\ }],
|
|
\ 'incomplete': 0,
|
|
\}
|
|
|
|
let got = lsp#omni#get_vim_completion_items(options)
|
|
Assert Equals(got, want)
|
|
Assert Equals(lsp#omni#get_managed_user_data_from_completed_item(got['items'][0]), {
|
|
\ 'server_name': 'dummy-server',
|
|
\ 'completion_item': item,
|
|
\ 'complete_position': { 'line': 1, 'character': 1 }
|
|
\ })
|
|
End
|
|
End
|
|
End
|