summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-10-31 16:23:44 +0100
committerGitHub <[email protected]>2021-10-31 16:23:44 +0100
commite8693406babee724dd51293dc6dad10931dbef45 (patch)
treecd3abce7b226f68d34126b88378f4936384a14e2 /lua/lvim/lsp
parent7a2a5fc810e6eaef185d9b0023b598a83c29d93e (diff)
perf(lsp): use the new upstream API for filetypes (#1836)
Diffstat (limited to 'lua/lvim/lsp')
-rw-r--r--lua/lvim/lsp/config.lua5
-rw-r--r--lua/lvim/lsp/manager.lua3
-rw-r--r--lua/lvim/lsp/utils.lua17
3 files changed, 16 insertions, 9 deletions
diff --git a/lua/lvim/lsp/config.lua b/lua/lvim/lsp/config.lua
index 2d9104ea..ccc524ee 100644
--- a/lua/lvim/lsp/config.lua
+++ b/lua/lvim/lsp/config.lua
@@ -46,15 +46,20 @@ return {
"ansiblels",
"denols",
"ember",
+ "emmet_ls",
"eslint",
"eslintls",
+ "graphql",
"jedi_language_server",
+ "ltex",
+ "phpactor",
"pylsp",
"rome",
"sqlls",
"sqls",
"stylelint_lsp",
"tailwindcss",
+ "tflint",
"volar",
},
}
diff --git a/lua/lvim/lsp/manager.lua b/lua/lvim/lsp/manager.lua
index 128c7553..dbb7b87f 100644
--- a/lua/lvim/lsp/manager.lua
+++ b/lua/lvim/lsp/manager.lua
@@ -42,7 +42,7 @@ end
-- manually start the server and don't wait for the usual filetype trigger from lspconfig
local function buf_try_add(server_name, bufnr)
bufnr = bufnr or vim.api.nvim_get_current_buf()
- require("lspconfig")[server_name].manager.try_add(bufnr)
+ require("lspconfig")[server_name].manager.try_add_wrapper(bufnr)
end
---Setup a language server by providing a name
@@ -78,7 +78,6 @@ function M.setup(server_name, user_config)
end
install_notification = false
requested_server:setup(config)
- buf_try_add(server_name)
end)
else
-- since it may not be installed, don't attempt to configure the LSP unless there is a custom provider
diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua
index a34fbf44..7cc8f54f 100644
--- a/lua/lvim/lsp/utils.lua
+++ b/lua/lvim/lsp/utils.lua
@@ -49,14 +49,17 @@ function M.get_client_capabilities(client_id)
end
function M.get_supported_filetypes(server_name)
- -- print("got filetypes query request for: " .. server_name)
- local configs = require "lspconfig/configs"
- pcall(require, ("lspconfig/" .. server_name))
- for _, config in pairs(configs) do
- if config.name == server_name then
- return config.document_config.default_config.filetypes or {}
- end
+ -- temporary workaround: https://github.com/neovim/nvim-lspconfig/pull/1358
+ if server_name == "dockerls" then
+ return { "dockerfile" }
+ end
+ local lsp_installer_servers = require "nvim-lsp-installer.servers"
+ local server_available, requested_server = lsp_installer_servers.get_server(server_name)
+ if not server_available then
+ return {}
end
+
+ return requested_server:get_supported_filetypes()
end
return M