From 9bd22941310325e6aa9c0c71c36ebee618bf6ac3 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sun, 12 Jun 2022 23:30:18 +0800 Subject: [PATCH] feat(lsp): add override_client_cmds --- autoload/SpaceVim/layers/lsp.vim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/autoload/SpaceVim/layers/lsp.vim b/autoload/SpaceVim/layers/lsp.vim index f59da6309..9c0c5bf0e 100644 --- a/autoload/SpaceVim/layers/lsp.vim +++ b/autoload/SpaceVim/layers/lsp.vim @@ -43,6 +43,7 @@ endif let s:NVIM_VERSION = SpaceVim#api#import('neovim#version') let s:FILE = SpaceVim#api#import('file') let s:enabled_clients = [] +let s:override_client_cmds = {} function! SpaceVim#layers#lsp#health() abort call SpaceVim#layers#lsp#plugins() @@ -90,6 +91,12 @@ end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches +local override_client_cmds = require('spacevim').eval('s:override_client_cmds') +for client, override_cmd in ipairs(override_client_cmds) do + nvim_lsp[client].setup { + cmd = override_cmd, + } +end local servers = require('spacevim').eval('s:enabled_clients') for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { @@ -256,6 +263,7 @@ let s:lsp_servers = { function! SpaceVim#layers#lsp#set_variable(var) abort let s:enabled_clients = get(a:var, 'enabled_clients', s:enabled_clients) let override = get(a:var, 'override_cmd', {}) + let s:override_client_cmds = get(a:var, 'override_client_cmds', {}) if !empty(override) call extend(s:lsp_servers, override, 'force') endif