From 3f1d09bc94d02266d6fa588a2ccd1be1ca084cf7 Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Fri, 1 Nov 2024 16:31:51 +0000 Subject: 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()`. --- runtime/lua/vim/shared.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'runtime/lua/vim/shared.lua') 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? +--- @return T[] +function vim._ensure_list(x) + if type(x) == 'table' then + return x + end + return { x } +end + return vim -- cgit