diff --git a/autoload/vsnip_integ/integration/vimlsp.vim b/autoload/vsnip_integ/integration/vimlsp.vim index 5e5c3c0..d068ac6 100644 --- a/autoload/vsnip_integ/integration/vimlsp.vim +++ b/autoload/vsnip_integ/integration/vimlsp.vim @@ -3,7 +3,11 @@ " function! vsnip_integ#integration#vimlsp#attach() abort let g:lsp_text_edit_enabled = v:true + + " save existing value because it may be user-defined. + let s:existing_capabilities_function = get(g:, lsp_get_supported_capabilities) let g:lsp_get_supported_capabilities = [function('s:get_supported_capabilities')] + let g:lsp_snippet_expand = [{ option -> vsnip#anonymous(option.snippet) }] endfunction @@ -11,7 +15,7 @@ endfunction " get_supported_capabilities. " function! s:get_supported_capabilities(server_info) abort - let l:capabilities = lsp#default_get_supported_capabilities(a:server_info) + let l:capabilities = call(s:existing_capabilities_function[0], [a:server_info]) if !has_key(l:capabilities, 'textDocument') let l:capabilities.textDocument = {}