aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorHirokazu Hata <h.hata.ai.t@gmail.com>2020-06-09 22:54:32 +0900
committerGitHub <noreply@github.com>2020-06-09 22:54:32 +0900
commit2c9954044ebe438316cb3b6b2ee7185109b925aa (patch)
tree813da852b874ad15f6685913809e2ce6e5a5761e /lua
parentMerge pull request #267 from landerlo/metals-better_coursier_support (diff)
parentfix the problem that commads cannot be registered in custom setup (diff)
downloadnvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.tar
nvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.tar.gz
nvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.tar.bz2
nvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.tar.lz
nvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.tar.xz
nvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.tar.zst
nvim-lspconfig-2c9954044ebe438316cb3b6b2ee7185109b925aa.zip
Merge pull request #268 from h-michael/command-definitions
fix the problem that commads cannot be registered in custom setup
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim_lsp/configs.lua19
1 files changed, 18 insertions, 1 deletions
diff --git a/lua/nvim_lsp/configs.lua b/lua/nvim_lsp/configs.lua
index a70efdb5..6334be4b 100644
--- a/lua/nvim_lsp/configs.lua
+++ b/lua/nvim_lsp/configs.lua
@@ -19,6 +19,8 @@ function configs.__newindex(t, config_name, config_def)
['command.fn'] = {v[1], 'f'};
}
end
+ else
+ config_def.commands = {}
end
local M = {}
@@ -73,7 +75,17 @@ function configs.__newindex(t, config_name, config_def)
filetypes = {config.filetype, 't', true};
on_new_config = {config.on_new_config, 'f', true};
on_attach = {config.on_attach, 'f', true};
+ commands = {config.commands, 't', true};
}
+ if config.commands then
+ for k, v in pairs(config.commands) do
+ validate {
+ ['command.name'] = {k, 's'};
+ ['command.fn'] = {v[1], 'f'};
+ }
+ end
+ end
+
config = tbl_extend("keep", config, default_config)
local trigger
@@ -171,12 +183,17 @@ function configs.__newindex(t, config_name, config_def)
if client.config._on_attach then
client.config._on_attach(client)
end
- if config_def.commands then
+ if client.config.commands and not vim.tbl_isempty(client.config.commands) then
+ M.commands = util.tbl_deep_extend("force", M.commands, client.config.commands)
+ end
+ if not M.commands_created and not vim.tbl_isempty(M.commands) then
-- Create the module commands
util.create_module_commands(config_name, M.commands)
+ M.commands_created = true
end
end
+ M.commands_created = false
M.commands = config_def.commands
M.name = config_name
M.document_config = config_def