summaryrefslogtreecommitdiff
path: root/lua
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
parent7a2a5fc810e6eaef185d9b0023b598a83c29d93e (diff)
perf(lsp): use the new upstream API for filetypes (#1836)
Diffstat (limited to 'lua')
-rw-r--r--lua/lvim/core/info.lua4
-rw-r--r--lua/lvim/lsp/config.lua5
-rw-r--r--lua/lvim/lsp/manager.lua3
-rw-r--r--lua/lvim/lsp/utils.lua17
4 files changed, 19 insertions, 10 deletions
diff --git a/lua/lvim/core/info.lua b/lua/lvim/core/info.lua
index 5707cc30..fc87691e 100644
--- a/lua/lvim/core/info.lua
+++ b/lua/lvim/core/info.lua
@@ -61,11 +61,13 @@ local function make_client_info(client)
local client_enabled_caps = lsp_utils.get_client_capabilities(client.id)
local name = client.name
local id = client.id
+ local filetypes = lsp_utils.get_supported_filetypes(name)
local document_formatting = client.resolved_capabilities.document_formatting
local attached_buffers_list = table.concat(vim.lsp.get_buffers_by_client_id(client.id), ", ")
local client_info = {
fmt("* Name: %s", name),
fmt("* Id: [%s]", tostring(id)),
+ fmt("* filetype(s): [%s]", table.concat(filetypes, ", ")),
fmt("* Attached buffers: [%s]", tostring(attached_buffers_list)),
fmt("* Supports formatting: %s", tostring(document_formatting)),
}
@@ -106,7 +108,7 @@ function M.toggle_popup(ft)
local lsp_info = {
"Language Server Protocol (LSP) info",
- fmt "* Associated server(s):",
+ fmt "* Active server(s):",
}
for _, client in pairs(clients) do
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