aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/lsp_settings.vim9
1 files changed, 8 insertions, 1 deletions
diff --git a/autoload/lsp_settings.vim b/autoload/lsp_settings.vim
index a9cead0..3514b3f 100644
--- a/autoload/lsp_settings.vim
+++ b/autoload/lsp_settings.vim
@@ -16,6 +16,13 @@ function! lsp_settings#get(name, key, default) abort
return l:config[a:key]
endfunction
+function! s:first_one(cmd) abort
+ if empty(a:cmd)
+ return ''
+ endif
+ return fnamemodify(split(a:cmd, "\n")[0], ':p')
+endfunction
+
function! lsp_settings#exec_path(cmd) abort
if executable(a:cmd)
return a:cmd
@@ -26,7 +33,7 @@ function! lsp_settings#exec_path(cmd) abort
endif
let l:paths .= ',' . s:servers_dir . '/' . a:cmd
if !has('win32')
- return globpath(l:paths, a:cmd)
+ return s:first_one(globpath(l:paths, a:cmd))
endif
let l:path = globpath(l:paths, a:cmd . '.exe')
if !empty(l:path)