diff options
author | kylo252 <[email protected]> | 2021-10-31 16:23:44 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-31 16:23:44 +0100 |
commit | e8693406babee724dd51293dc6dad10931dbef45 (patch) | |
tree | cd3abce7b226f68d34126b88378f4936384a14e2 /lua | |
parent | 7a2a5fc810e6eaef185d9b0023b598a83c29d93e (diff) |
perf(lsp): use the new upstream API for filetypes (#1836)
Diffstat (limited to 'lua')
-rw-r--r-- | lua/lvim/core/info.lua | 4 | ||||
-rw-r--r-- | lua/lvim/lsp/config.lua | 5 | ||||
-rw-r--r-- | lua/lvim/lsp/manager.lua | 3 | ||||
-rw-r--r-- | lua/lvim/lsp/utils.lua | 17 |
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 |