summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/lsp')
-rw-r--r--lua/lvim/lsp/config.lua15
-rw-r--r--lua/lvim/lsp/manager.lua13
-rw-r--r--lua/lvim/lsp/templates.lua38
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)