# add a listener to track changes to this buffer
listener_add(Bufchange_listener, bnr)
- completion.BufferInit(lspserver, bnr, ftype)
+ AddBufLocalAutocmds(lspserver, bnr)
setbufvar(bnr, '&balloonexpr', 'g:LspDiagExpr()')
- # initialize signature help
- signature.SignatureInit(lspserver)
-
- AddBufLocalAutocmds(lspserver, bnr)
+ completion.BufferInit(lspserver, bnr, ftype)
+ signature.BufferInit(lspserver)
+ inlayhints.BufferInit(lspserver, bnr)
if exists('#User#LspAttached')
doautocmd <nomodeline> User LspAttached
enddef
# Initialize the signature triggers for the current buffer
-export def SignatureInit(lspserver: dict<any>)
- if !opt.lspOptions.showSignature
- || !lspserver.isSignatureHelpProvider
+export def BufferInit(lspserver: dict<any>)
+ if !lspserver.isSignatureHelpProvider
|| !lspserver.caps.signatureHelpProvider->has_key('triggerCharacters')
# no support for signature help
return
endif
+ if !opt.lspOptions.showSignature
+ # Show signature are disabled
+ return
+ endif
+
# map characters that trigger signature help
for ch in lspserver.caps.signatureHelpProvider.triggerCharacters
exe $"inoremap <buffer> <silent> {ch} {ch}<C-R>=LspShowSignature()<CR>"
endfor
+
# close the signature popup when leaving insert mode
autocmd_add([{bufnr: bufnr(),
event: 'InsertLeave',