From: Yegappan Lakshmanan Date: Tue, 16 Feb 2021 02:49:02 +0000 (-0800) Subject: Pass the completion trigger kind X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=94e21970dd02834db1de0816dc08cb7b9e47b2fc;p=vim-lsp.git Pass the completion trigger kind --- diff --git a/autoload/handlers.vim b/autoload/handlers.vim index caf0783..bf1711d 100644 --- a/autoload/handlers.vim +++ b/autoload/handlers.vim @@ -37,7 +37,6 @@ def s:processInitializeReply(lspserver: dict, req: dict, reply: dict, req: dict, reply: dictadd(d) endfor diff --git a/autoload/lsp.vim b/autoload/lsp.vim index d2607db..f36e3a8 100644 --- a/autoload/lsp.vim +++ b/autoload/lsp.vim @@ -548,19 +548,24 @@ def lsp#complete() return endif + # Trigger kind is 1 for 24x7 code complete or manual invocation + var triggerKind: number = 1 + # If the character before the cursor is not a keyword character or is not # one of the LSP completion trigger characters, then do nothing. if line[cur_col - 2] !~ '\k' if lspserver.completionTriggerChars->index(line[cur_col - 2]) == -1 return endif + # completion triggered by one of the trigger characters + triggerKind = 2 endif # first send all the changes in the current buffer to the LSP server listener_flush() # initiate a request to LSP server to get list of completions - lspserver.getCompletion() + lspserver.getCompletion(triggerKind) return enddef @@ -586,7 +591,7 @@ def lsp#omniFunc(findstart: number, base: string): any lspserver.completePending = v:true lspserver.completeItems = [] # initiate a request to LSP server to get list of completions - lspserver.getCompletion() + lspserver.getCompletion(1) # locate the start of the word var line = getline('.') diff --git a/autoload/lspserver.vim b/autoload/lspserver.vim index db972b6..02f70ac 100644 --- a/autoload/lspserver.vim +++ b/autoload/lspserver.vim @@ -351,7 +351,7 @@ enddef # Get a list of completion items. # Request: "textDocument/completion" # Param: CompletionParams -def s:getCompletion(lspserver: dict): void +def s:getCompletion(lspserver: dict, triggerKind_arg: number): void # Check whether LSP server supports completion if !lspserver.caps->has_key('completionProvider') ErrMsg("Error: LSP server does not support completion") @@ -369,7 +369,7 @@ def s:getCompletion(lspserver: dict): void # interface TextDocumentPositionParams req.params->extend(s:getLspTextDocPosition()) # interface CompletionContext - req.params->extend({context: {triggerKind: 1}}) + req.params->extend({context: {triggerKind: triggerKind_arg}}) lspserver.sendMessage(req) enddef