summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp/utils.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2022-08-09 10:41:17 +0200
committerGitHub <[email protected]>2022-08-09 10:41:17 +0200
commiteefde00ae80f91ecf88a93e869e346fdd04c7ba4 (patch)
tree873b8fc0248938ab060a1482f88c2d6d742ce61b /lua/lvim/lsp/utils.lua
parentd53b3743f2a259dbf90446216194ade2bb224ab7 (diff)
refactor!: migrate to mason.nvim (#2880)
Diffstat (limited to 'lua/lvim/lsp/utils.lua')
-rw-r--r--lua/lvim/lsp/utils.lua29
1 files changed, 13 insertions, 16 deletions
diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua
index fa1ac6d9..b92ef11c 100644
--- a/lua/lvim/lsp/utils.lua
+++ b/lua/lvim/lsp/utils.lua
@@ -51,37 +51,34 @@ end
---Get supported filetypes per server
---@param server_name string can be any server supported by nvim-lsp-installer
----@return table supported filestypes as a list of strings
+---@return string[] supported filestypes as a list of strings
function M.get_supported_filetypes(server_name)
- local status_ok, lsp_installer_servers = pcall(require, "nvim-lsp-installer.servers")
+ local status_ok, config = pcall(require, ("lspconfig.server_configurations.%s"):format(server_name))
if not status_ok then
return {}
end
- 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()
+ return config.default_config.filetypes or {}
end
---Get supported servers per filetype
----@param filetype string
----@return table list of names of supported servers
-function M.get_supported_servers_per_filetype(filetype)
- local filetype_server_map = require "nvim-lsp-installer._generated.filetype_map"
- return filetype_server_map[filetype]
+---@param filter { filetype: string | string[] }?: (optional) Used to filter the list of server names.
+---@return string[] list of names of supported servers
+function M.get_supported_servers(filter)
+ local _, supported_servers = pcall(function()
+ return require("mason-lspconfig").get_available_servers(filter)
+ end)
+ return supported_servers or {}
end
---Get all supported filetypes by nvim-lsp-installer
----@return table supported filestypes as a list of strings
+---@return string[] supported filestypes as a list of strings
function M.get_all_supported_filetypes()
- local status_ok, lsp_installer_filetypes = pcall(require, "nvim-lsp-installer._generated.filetype_map")
+ local status_ok, filetype_server_map = pcall(require, "mason-lspconfig.mappings.filetype")
if not status_ok then
return {}
end
- return vim.tbl_keys(lsp_installer_filetypes or {})
+ return vim.tbl_keys(filetype_server_map or {})
end
function M.setup_document_highlight(client, bufnr)