From 94e21970dd02834db1de0816dc08cb7b9e47b2fc Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Mon, 15 Feb 2021 18:49:02 -0800 Subject: [PATCH] Pass the completion trigger kind --- autoload/handlers.vim | 2 +- autoload/lsp.vim | 9 +++++++-- autoload/lspserver.vim | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) 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 -- 2.48.1