diff --git a/autoload/lsp_settings.vim b/autoload/lsp_settings.vim index f7053e8..896b33b 100644 --- a/autoload/lsp_settings.vim +++ b/autoload/lsp_settings.vim @@ -358,9 +358,9 @@ function! s:vim_lsp_install_server_post(command, job, code, ...) abort let l:script = printf('%s/%s.vim', s:settings_dir, a:command) if filereadable(l:script) if has('patch-8.1.1113') - command! -nargs=1 LspRegisterServer autocmd User lsp_setup ++once call lsp#register_server() + command! -nargs=1 LspRegisterServer autocmd User lsp_setup ++once call lsp_settings#register_server() else - command! -nargs=1 LspRegisterServer autocmd User lsp_setup call lsp#register_server() + command! -nargs=1 LspRegisterServer autocmd User lsp_setup call lsp_settings#register_server() endif exe 'source' l:script delcommand LspRegisterServer @@ -454,6 +454,15 @@ function! s:vim_lsp_suggest_plugin() abort endfor endfunction +function! lsp_settings#register_server(...) abort + let l:name = a:000[0]['name'] + let l:env = lsp_settings#get(l:name, 'env', {}) + if !empty(l:env) + let a:000[0]['env'] = l:env + endif + return call('lsp#register_server', a:000) +endfunction + function! s:vim_lsp_load_or_suggest(ft) abort if (a:ft !=# '_' && &filetype !=# a:ft) || !has_key(s:settings, a:ft) return @@ -489,9 +498,9 @@ function! s:vim_lsp_load_or_suggest(ft) abort exe 'augroup!' l:group_name if has('patch-8.1.1113') - command! -nargs=1 LspRegisterServer autocmd User lsp_setup ++once call lsp#register_server() + command! -nargs=1 LspRegisterServer autocmd User lsp_setup ++once call lsp_settings#register_server() else - command! -nargs=1 LspRegisterServer autocmd User lsp_setup call lsp#register_server() + command! -nargs=1 LspRegisterServer autocmd User lsp_setup call lsp_settings#register_server() endif let l:default = get(g:, 'lsp_settings_filetype_' . a:ft, '')