aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/shared.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-11-01 16:31:51 +0000
committerLewis Russell <me@lewisr.dev>2024-12-10 17:16:01 +0000
commit3f1d09bc94d02266d6fa588a2ccd1be1ca084cf7 (patch)
treef296c9607155bffe75ebaa23e20b19c36ecb87f1 /runtime/lua/vim/shared.lua
parentca760e645ba4d1fdb0b6fff3ac98231c3d683306 (diff)
downloadrneovim-3f1d09bc94d02266d6fa588a2ccd1be1ca084cf7.tar.gz
rneovim-3f1d09bc94d02266d6fa588a2ccd1be1ca084cf7.tar.bz2
rneovim-3f1d09bc94d02266d6fa588a2ccd1be1ca084cf7.zip
feat(lsp): add vim.lsp.config and vim.lsp.enable
Design goals/requirements: - Default configuration of a server can be distributed across multiple sources. - And via RTP discovery. - Default configuration can be specified for all servers. - Configuration _can_ be project specific. Solution: - Two new API's: - `vim.lsp.config(name, cfg)`: - Used to define default configurations for servers of name. - Can be used like a table or called as a function. - Use `vim.lsp.confg('*', cfg)` to specify default config for all servers. - `vim.lsp.enable(name)` - Used to enable servers of name. Uses configuration defined via `vim.lsp.config()`.
Diffstat (limited to 'runtime/lua/vim/shared.lua')
-rw-r--r--runtime/lua/vim/shared.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
index 0fe8e99350..24c3f243e5 100644
--- a/runtime/lua/vim/shared.lua
+++ b/runtime/lua/vim/shared.lua
@@ -1409,4 +1409,14 @@ function vim._resolve_bufnr(bufnr)
return bufnr
end
+--- @generic T
+--- @param x elem_or_list<T>?
+--- @return T[]
+function vim._ensure_list(x)
+ if type(x) == 'table' then
+ return x
+ end
+ return { x }
+end
+
return vim