diff --git a/vim/plugin/lsp.lua b/vim/plugin/lsp.lua index 631d4a6..d781a56 100644 --- a/vim/plugin/lsp.lua +++ b/vim/plugin/lsp.lua @@ -20,7 +20,17 @@ setmetatable(default, {__call = function(self, other) return new end}) -for key, value in pairs { +local configs = setmetatable({ + yamlls = default { + settings = { + yaml = { + format = { enable = true } + } + } + }, +}, {__index = function() return default end}) + +for _, language in ipairs { "clangd", "cssls", "html", @@ -31,28 +41,22 @@ for key, value in pairs { "svelte", "tsserver", "zls", - yamlls = default { - settings = { - yaml = { - format = { enable = true } - } - } - }, -- bun install --global yaml-language-server + "yamlls", -- bun install --global yaml-language-server } do - local language, settings if type(key) == "string" then - language, settings = key, value - else - language, settings = value, default - end - - config[language].setup(ensure_capabilities(settings)) + config[language].setup(ensure_capabilities(configs[language])) end -function _G.ls(name) - for _, server in pairs(vim.lsp.get_clients()) do - if server.config.name == name then - return server - end - error("No running language server with name " .. name) - end -end +-- function _G.ls(name) +-- for _, server in pairs(vim.lsp.get_clients()) do +-- if server.config.name == name then +-- return server +-- end +-- error("No running language server with name " .. name) +-- end +-- end + +vim.api.nvim_create_user_command("LspAdd", function(params) + local language = params.args + local setup = config[language].setup -- temp variable for better stack trace + setup(ensure_capabilities(configs[language])) +end, {nargs = 1})