From: Yegappan Lakshmanan Date: Tue, 23 May 2023 01:13:10 +0000 (-0700) Subject: Get the resolveProvider capability only if completionProvider is present X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=52b3ab1814ff303f8193a95075cf4b760a816788;p=vim-lsp.git Get the resolveProvider capability only if completionProvider is present --- diff --git a/autoload/lsp/completion.vim b/autoload/lsp/completion.vim index a8ef1a9..f2e706f 100644 --- a/autoload/lsp/completion.vim +++ b/autoload/lsp/completion.vim @@ -592,6 +592,11 @@ export def BufferInit(lspserver: dict, bnr: number, ftype: string) return endif + if !opt.lspOptions.autoComplete && !LspOmniComplEnabled(ftype) + # LSP auto/omni completion support is not enabled for this buffer + return + endif + # buffer-local autocmds for completion var acmds: list> = [] @@ -615,9 +620,7 @@ export def BufferInit(lspserver: dict, bnr: number, ftype: string) group: 'LSPBufferAutocmds', cmd: 'LspComplete()'}) else - if LspOmniComplEnabled(ftype) - setbufvar(bnr, '&omnifunc', 'g:LspOmniFunc') - endif + setbufvar(bnr, '&omnifunc', 'g:LspOmniFunc') endif if lspserver.completionLazyDoc diff --git a/autoload/lsp/lspserver.vim b/autoload/lsp/lspserver.vim index f7505de..f6fa2b6 100644 --- a/autoload/lsp/lspserver.vim +++ b/autoload/lsp/lspserver.vim @@ -110,12 +110,14 @@ def ServerInitReply(lspserver: dict, initResult: dict): void capabilities.ProcessServerCaps(lspserver, caps) - if opt.lspOptions.autoComplete && caps->has_key('completionProvider') - lspserver.completionTriggerChars = + if caps->has_key('completionProvider') + if opt.lspOptions.autoComplete + lspserver.completionTriggerChars = caps.completionProvider->get('triggerCharacters', []) + endif + lspserver.completionLazyDoc = + caps.completionProvider->get('resolveProvider', false) endif - lspserver.completionLazyDoc = - caps.completionProvider->get('resolveProvider', false) # send a "initialized" notification to server lspserver.sendInitializedNotif() diff --git a/doc/lsp.txt b/doc/lsp.txt index cabc041..7bc11dd 100644 --- a/doc/lsp.txt +++ b/doc/lsp.txt @@ -328,7 +328,9 @@ Additionally the following configurations can be made: *lsp-cfg-omnicompl* omnicompl (Optional) a boolean value that enables (true) or disables (false) omni-completion for these file - types. By default this is set to "v:true". + types. By default this is set to "v:true". This value + is applicable only if auto completion is disabled + (|lsp-opt-autoComplete|). *lsp-cfg-processDiagHandler* processDiagHandler (Optional) A |Funcref| or |lambda| that takes a list of