aboutsummaryrefslogtreecommitdiffstats
path: root/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
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')
-rw-r--r--lua/lspconfig/configs.lua9
-rw-r--r--lua/lspconfig/ui/lspinfo.lua2
2 files changed, 8 insertions, 3 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
diff --git a/lua/lspconfig/ui/lspinfo.lua b/lua/lspconfig/ui/lspinfo.lua
index e0b9bf96..cc1e1b56 100644
--- a/lua/lspconfig/ui/lspinfo.lua
+++ b/lua/lspconfig/ui/lspinfo.lua
@@ -329,7 +329,7 @@ return function()
if not config then
return
end
- local desc = vim.tbl_get(config, 'document_config', 'docs', 'description')
+ local desc = vim.tbl_get(config, 'config_def', 'docs', 'description')
if desc then
lines[#lines + 1] = string.format('# %s', config.name)
lines[#lines + 1] = ''