mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 00:20:05 +08:00
feat(lsp): support #{cwd}
for the current working directory
* In lsp config replace #{cwd} for the current working directory. * Fix bug introduced by renaming a variable Co-authored-by: Alessio Linares <alessio.linares@king.com>
This commit is contained in:
parent
4b617500ec
commit
0a1af5b6bf
@ -258,15 +258,23 @@ function! SpaceVim#layers#lsp#set_variable(var) abort
|
|||||||
if !empty(override)
|
if !empty(override)
|
||||||
call extend(s:lsp_servers, override, 'force')
|
call extend(s:lsp_servers, override, 'force')
|
||||||
endif
|
endif
|
||||||
|
let l:cwd = getcwd()
|
||||||
for ft in get(a:var, 'filetypes', [])
|
for ft in get(a:var, 'filetypes', [])
|
||||||
let cmd = get(s:lsp_servers, ft, [''])[0]
|
let l:cmds = get(s:lsp_servers, ft, [''])
|
||||||
if empty(cmd)
|
let l:exec = l:cmds[0]
|
||||||
|
if empty(l:exec)
|
||||||
call SpaceVim#logger#warn('Failed to find the lsp server command for ' . ft)
|
call SpaceVim#logger#warn('Failed to find the lsp server command for ' . ft)
|
||||||
else
|
else
|
||||||
if executable(cmd)
|
if executable(l:exec)
|
||||||
call add(s:enabled_fts, ft)
|
call add(s:enabled_fts, ft)
|
||||||
|
let l:newcmds = []
|
||||||
|
for l:cmd in l:cmds
|
||||||
|
let l:newcmd = substitute(l:cmd, '#{cwd}', l:cwd, 'g')
|
||||||
|
call add(l:newcmds, l:newcmd)
|
||||||
|
endfor
|
||||||
|
let s:lsp_servers[ft] = l:newcmds
|
||||||
else
|
else
|
||||||
call SpaceVim#logger#warn('Failed to enable lsp for ' . ft . ', ' . cmd . ' is not executable!')
|
call SpaceVim#logger#warn('Failed to enable lsp for ' . ft . ', ' . l:exec . ' is not executable!')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
Loading…
Reference in New Issue
Block a user