From: Andreas Louv Date: Thu, 30 Mar 2023 12:58:05 +0000 (+0200) Subject: Merge the functions "AddAutocmds" and "BufferInit" X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=347ed14c8012922e91153bbddb66fa83a3517b0b;p=vim-lsp.git Merge the functions "AddAutocmds" and "BufferInit" --- diff --git a/autoload/lsp/completion.vim b/autoload/lsp/completion.vim index b3e9c34..b10ad97 100644 --- a/autoload/lsp/completion.vim +++ b/autoload/lsp/completion.vim @@ -448,12 +448,26 @@ def LspCompleteDone() textedit.ApplyTextEdits(bnr, completionData.additionalTextEdits) enddef -# Add buffer-local autocmds for completion -def AddAutocmds(lspserver: dict, bnr: number) +# Initialize buffer-local completion options and autocmds +export def BufferInit(lspserver: dict, bnr: number, ftype: string) + + # buffer-local autocmds for completion var acmds: list> = [] - # Insert-mode completion autocmds (if configured) + # set options for insert mode completion if opt.lspOptions.autoComplete + if lspserver.completionLazyDoc + setbufvar(bnr, '&completeopt', 'menuone,popuphidden,noinsert,noselect') + setbufvar(bnr, '&completepopup', 'width:80,highlight:Pmenu,align:item,border:off') + else + setbufvar(bnr, '&completeopt', 'menuone,popup,noinsert,noselect') + setbufvar(bnr, '&completepopup', 'border:off') + endif + # in insert mode stops completion and inserts a + if !opt.lspOptions.noNewlineInCompletion + :inoremap pumvisible() ? "\\" : "\" + endif + # Trigger 24x7 insert mode completion when text is changed acmds->add({bufnr: bnr, event: 'TextChangedI', @@ -466,6 +480,10 @@ def AddAutocmds(lspserver: dict, bnr: number) group: 'LSPBufferAutocmds', cmd: 'LspResolve()'}) endif + else + if LspOmniComplEnabled(ftype) + setbufvar(bnr, '&omnifunc', 'g:LspOmniFunc') + endif endif acmds->add({bufnr: bnr, @@ -482,28 +500,4 @@ def AddAutocmds(lspserver: dict, bnr: number) autocmd_add(acmds) enddef -# Initialize buffer-local completion options and autocmds -export def BufferInit(lspserver: dict, bnr: number, ftype: string) - # set options for insert mode completion - if opt.lspOptions.autoComplete - if lspserver.completionLazyDoc - setbufvar(bnr, '&completeopt', 'menuone,popuphidden,noinsert,noselect') - setbufvar(bnr, '&completepopup', 'width:80,highlight:Pmenu,align:item,border:off') - else - setbufvar(bnr, '&completeopt', 'menuone,popup,noinsert,noselect') - setbufvar(bnr, '&completepopup', 'border:off') - endif - # in insert mode stops completion and inserts a - if !opt.lspOptions.noNewlineInCompletion - :inoremap pumvisible() ? "\\" : "\" - endif - else - if LspOmniComplEnabled(ftype) - setbufvar(bnr, '&omnifunc', 'g:LspOmniFunc') - endif - endif - - AddAutocmds(lspserver, bnr) -enddef - # vim: tabstop=8 shiftwidth=2 softtabstop=2