diff options
Diffstat (limited to 'lua/lvim/lsp')
-rw-r--r-- | lua/lvim/lsp/config.lua | 15 | ||||
-rw-r--r-- | lua/lvim/lsp/manager.lua | 13 | ||||
-rw-r--r-- | lua/lvim/lsp/templates.lua | 38 |
3 files changed, 21 insertions, 45 deletions
diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua index 30336cc2..96430631 100644 --- a/lua/lvim/lsp/config.lua +++ b/lua/lvim/lsp/config.lua @@ -15,7 +15,6 @@ return { underline = true, severity_sort = true, }, - override = {}, document_highlight = true, code_lens_refresh = true, popup_border = "single", @@ -42,4 +41,18 @@ return { null_ls = { setup = {}, }, + override = { + "angularls", + "ansiblels", + "denols", + "ember", + "jedi_language_server", + "pylsp", + "rome", + "sqlls", + "sqls", + "stylelint_lsp", + "tailwindcss", + "volar", + }, } diff --git a/lua/lvim/lsp/manager.lua b/lua/lvim/lsp/manager.lua index 678a08af..0b11c175 100644 --- a/lua/lvim/lsp/manager.lua +++ b/lua/lvim/lsp/manager.lua @@ -1,7 +1,7 @@ local M = {} local Log = require "lvim.core.log" -local lsp_utils = require "lvim.lsp.utils" +local lvim_lsp_utils = require "lvim.lsp.utils" function M.init_defaults(languages) for _, entry in ipairs(languages) do @@ -15,15 +15,6 @@ function M.init_defaults(languages) end end -local function is_overridden(server) - local overrides = lvim.lsp.override - if type(overrides) == "table" then - if vim.tbl_contains(overrides, server) then - return true - end - end -end - ---Resolve the configuration for a server based on both common and user configuration ---@param name string ---@param user_config table [optional] @@ -54,7 +45,7 @@ end function M.setup(server_name, user_config) vim.validate { name = { server_name, "string" } } - if lsp_utils.is_client_active(server_name) or is_overridden(server_name) then + if lvim_lsp_utils.is_client_active(server_name) then return end diff --git a/lua/lvim/lsp/templates.lua b/lua/lvim/lsp/templates.lua index e0741b1b..3478f4fb 100644 --- a/lua/lvim/lsp/templates.lua +++ b/lua/lvim/lsp/templates.lua @@ -2,7 +2,7 @@ local M = {} local Log = require "lvim.core.log" local utils = require "lvim.utils" -local get_supported_filetypes = require("lvim.lsp.utils").get_supported_filetypes +local lvim_lsp_utils = require "lvim.lsp.utils" local ftplugin_dir = lvim.lsp.templates_dir @@ -15,48 +15,20 @@ function M.remove_template_files() end end ----Checks if a server is ignored by default because of a conflict ----Only TSServer is enabled by default for the javascript-family ----@param server_name string -function M.is_ignored(server_name, filetypes) - --TODO: this is easy to be made configurable once stable - filetypes = filetypes or get_supported_filetypes(server_name) - - if vim.tbl_contains(filetypes, "javascript") then - if server_name == "tsserver" then - return false - else - return true - end - end - - local blacklist = { - "jedi_language_server", - "pylsp", - "sqlls", - "sqls", - "angularls", - "ansiblels", - } - return vim.tbl_contains(blacklist, server_name) -end - ---Generates an ftplugin file based on the server_name in the selected directory ---@param server_name string name of a valid language server, e.g. pyright, gopls, tsserver, etc. ---@param dir string the full path to the desired directory function M.generate_ftplugin(server_name, dir) - -- we need to go through lspconfig to get the corresponding filetypes currently - local filetypes = get_supported_filetypes(server_name) or {} - if not filetypes then + if vim.tbl_contains(lvim.lsp.override, server_name) then return end - if M.is_ignored(server_name, filetypes) then + -- we need to go through lspconfig to get the corresponding filetypes currently + local filetypes = lvim_lsp_utils.get_supported_filetypes(server_name) or {} + if not filetypes then return end - -- print("got associated filetypes: " .. vim.inspect(filetypes)) - for _, filetype in ipairs(filetypes) do local filename = join_paths(dir, filetype .. ".lua") local setup_cmd = string.format([[require("lvim.lsp.manager").setup(%q)]], server_name) |