Skip to content

Commit

Permalink
Update get lsp omni completion items
Browse files Browse the repository at this point in the history
See #18
  • Loading branch information
lighttiger2505 committed Jun 9, 2020
1 parent 5ed413d commit 4e66029
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions autoload/deoplete_vim_lsp.vim
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,33 @@ func! deoplete_vim_lsp#request(server_name, opt, ctx) abort
endfunc

function! s:completor(server_name, opt, ctx) abort
let l:position = lsp#get_position()
call lsp#send_request(a:server_name, {
\ 'method': 'textDocument/completion',
\ 'params': {
\ 'textDocument': lsp#get_text_document_identifier(),
\ 'position': lsp#get_position(),
\ 'position': l:position,
\ },
\ 'on_notification': function('s:handle_completion', [a:server_name, a:opt, a:ctx]),
\ 'on_notification': function('s:handle_completion', [a:server_name, l:position, a:opt, a:ctx]),
\ })
endfunction

function! s:handle_completion(server_name, opt, ctx, data) abort
function! s:handle_completion(server_name, position, opt, ctx, data) abort
if lsp#client#is_error(a:data) || !has_key(a:data, 'response') || !has_key(a:data['response'], 'result')
return
endif

" for register vim-lsp managed user data
let l:result = a:data['response']['result']
if type(l:result) == type([])
let l:items = copy(l:result)
elseif type(l:result) == type({})
let l:items = copy(l:result['items'])
else
let l:items = []
endif
let l:options = {
\ 'server': a:server_name,
\ 'position': a:position,
\ 'response': a:data['response'],
\ }
let g:deoplete#source#vim_lsp#_items = lsp#omni#get_vim_completion_items(l:options)['items']

" pass to deoplete reference variable and call completion
let g:deoplete#source#vim_lsp#_items = map(l:items, 'lsp#omni#get_vim_completion_item(v:val, a:server_name)')
let g:deoplete#source#vim_lsp#_done = 1
let l:ctx = a:ctx
let g:deoplete#source#vim_lsp#_context = l:ctx

if index(['i', 'ic', 'ix'], mode()) >= 0
call deoplete#auto_complete()
endif
Expand Down

0 comments on commit 4e66029

Please sign in to comment.