diff options
Diffstat (limited to 'lua/lvim/lsp')
| -rw-r--r-- | lua/lvim/lsp/manager.lua | 1 | ||||
| -rw-r--r-- | lua/lvim/lsp/templates.lua | 1 | ||||
| -rw-r--r-- | lua/lvim/lsp/utils.lua | 21 | 
3 files changed, 19 insertions, 4 deletions
| diff --git a/lua/lvim/lsp/manager.lua b/lua/lvim/lsp/manager.lua index 7a35f1ff..c95b9f69 100644 --- a/lua/lvim/lsp/manager.lua +++ b/lua/lvim/lsp/manager.lua @@ -4,6 +4,7 @@ local Log = require "lvim.core.log"  local lvim_lsp_utils = require "lvim.lsp.utils"  function M.init_defaults(languages) +  languages = languages or lvim_lsp_utils.get_all_supported_filetypes()    for _, entry in ipairs(languages) do      if not lvim.lang[entry] then        lvim.lang[entry] = { diff --git a/lua/lvim/lsp/templates.lua b/lua/lvim/lsp/templates.lua index 3478f4fb..eb05615e 100644 --- a/lua/lvim/lsp/templates.lua +++ b/lua/lvim/lsp/templates.lua @@ -53,6 +53,7 @@ function M.generate_templates(servers_names)      for _, server in pairs(available_servers) do        table.insert(servers_names, server.name) +      table.sort(servers_names)      end    end 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 | 
