diff options
author | Lewis Russell <lewis6991@gmail.com> | 2024-11-01 16:31:51 +0000 |
---|---|---|
committer | Lewis Russell <me@lewisr.dev> | 2024-12-10 17:16:01 +0000 |
commit | 3f1d09bc94d02266d6fa588a2ccd1be1ca084cf7 (patch) | |
tree | f296c9607155bffe75ebaa23e20b19c36ecb87f1 /runtime/lua/vim/shared.lua | |
parent | ca760e645ba4d1fdb0b6fff3ac98231c3d683306 (diff) | |
download | rneovim-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.lua | 10 |
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 |