#1162 Add unfinished experimental code for supporting LSP completion, clean up the tests, and make the completion cancelling better

This commit is contained in:
w0rp
2017-11-26 12:24:18 +00:00
parent 2e50aadd56
commit b1a6abdda6
9 changed files with 677 additions and 384 deletions

View File

@@ -86,3 +86,24 @@ function! ale#lsp#message#DidClose(buffer) abort
\ },
\}]
endfunction
let s:COMPLETION_TRIGGER_INVOKED = 1
let s:COMPLETION_TRIGGER_CHARACTER = 2
function! ale#lsp#message#Completion(buffer, line, column, trigger_character) abort
let l:message = [0, 'textDocument/completion', {
\ 'textDocument': {
\ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')),
\ },
\ 'position': {'line': a:line - 1, 'character': a:column - 1},
\}]
if !empty(a:trigger_character)
let l:message[2].context = {
\ 'triggerKind': s:COMPLETION_TRIGGER_CHARACTER,
\ 'triggerCharacter': a:trigger_character,
\}
endif
return l:message
endfunction