aboutsummaryrefslogtreecommitdiffstats
path: root/lua/lspconfig/configs.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2024-10-02 02:50:41 -0700
committerGitHub <noreply@github.com>2024-10-02 02:50:41 -0700
commitae7698f4fe9a054c2427a8f5612422c9d6426b74 (patch)
tree26d5c6495f78f0800f2c58f4011dbe7630e0ef39 /lua/lspconfig/configs.lua
parentdocs: update configs.md (diff)
downloadnvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.tar
nvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.tar.gz
nvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.tar.bz2
nvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.tar.lz
nvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.tar.xz
nvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.tar.zst
nvim-lspconfig-ae7698f4fe9a054c2427a8f5612422c9d6426b74.zip
feat: expose config definition as `config_def` #3335
Problem: Users/plugins may want to use the config definition without actually activating the config via setup(). Solution: - Expose `config_def` field and document it. - Also undeprecate some stuff that doesn't yet have a documented alternative. TODO: configs.lua sets `M.filetypes = config.filetypes` and other fields in ad-hoc fashion "for :LspInfo" but it's not clear when those fields are actually populated, and they don't source from `config_def`...
Diffstat (limited to 'lua/lspconfig/configs.lua')
-rw-r--r--lua/lspconfig/configs.lua9
1 files changed, 7 insertions, 2 deletions
diff --git a/lua/lspconfig/configs.lua b/lua/lspconfig/configs.lua
index 5a5fc2e5..e8271636 100644
--- a/lua/lspconfig/configs.lua
+++ b/lua/lspconfig/configs.lua
@@ -26,6 +26,9 @@ local function sanitize_cmd(cmd)
end
end
+---@param t table
+---@param config_name string
+---@param config_def table Config definition read from `lspconfig.configs.<name>`.
function configs.__newindex(t, config_name, config_def)
validate {
name = { config_name, 's' },
@@ -178,7 +181,7 @@ function configs.__newindex(t, config_name, config_def)
end)
end
- -- Used by :LspInfo
+ -- Used by :LspInfo (evil, mutable aliases?)
M.get_root_dir = get_root_dir
M.filetypes = config.filetypes
M.handlers = config.handlers
@@ -290,7 +293,9 @@ function configs.__newindex(t, config_name, config_def)
M.commands = config_def.commands
M.name = config_name
- M.document_config = config_def
+ -- Expose the (original?) values of a config (non-active, or before `setup()`).
+ M.config_def = config_def
+ M.document_config = config_def -- For back-compat.
rawset(t, config_name, M)
end