summaryrefslogtreecommitdiff
path: root/lua/lvim/lsp/utils.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-12-21 09:11:30 +0100
committerkylo252 <[email protected]>2021-12-21 09:11:30 +0100
commit427ad868d404a254dcbc7d3950946dae0cf205de (patch)
tree2b9075418abb52cf98f87c8969968632a82dbd44 /lua/lvim/lsp/utils.lua
parent7244220d93e2b98ba7e7aed14e4f5ccc379b254b (diff)
parent5e44e6d59bb8bac477c230dd8a463ddc1dd91799 (diff)
Merge remote-tracking branch 'origin/rolling'
Diffstat (limited to 'lua/lvim/lsp/utils.lua')
-rw-r--r--lua/lvim/lsp/utils.lua21
1 files changed, 17 insertions, 4 deletions
diff --git a/lua/lvim/lsp/utils.lua b/lua/lvim/lsp/utils.lua
index df3846ce..6d1ed09c 100644
--- a/lua/lvim/lsp/utils.lua
+++ b/lua/lvim/lsp/utils.lua
@@ -49,12 +49,15 @@ function M.get_client_capabilities(client_id)
return enabled_caps
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
function M.get_supported_filetypes(server_name)
- -- temporary workaround: https://github.com/neovim/nvim-lspconfig/pull/1358
- if server_name == "dockerls" then
- return { "dockerfile" }
+ local status_ok, lsp_installer_servers = pcall(require, "nvim-lsp-installer.servers")
+ if not status_ok then
+ return {}
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 {}
@@ -63,4 +66,14 @@ function M.get_supported_filetypes(server_name)
return requested_server:get_supported_filetypes()
end
+---Get all supported filetypes by nvim-lsp-installer
+---@return table 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")
+ if not status_ok then
+ return {}
+ end
+ return vim.tbl_keys(lsp_installer_filetypes or {})
+end
+
return M