diff options
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 | 
