diff options
Diffstat (limited to 'lua/lvim')
| -rw-r--r-- | lua/lvim/config/init.lua | 3 | ||||
| -rw-r--r-- | lua/lvim/config/supported_languages.lua | 95 | ||||
| -rw-r--r-- | lua/lvim/interface/popup.lua | 4 | ||||
| -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 | 
6 files changed, 23 insertions, 102 deletions
| diff --git a/lua/lvim/config/init.lua b/lua/lvim/config/init.lua index fba6213d..9b6d36f0 100644 --- a/lua/lvim/config/init.lua +++ b/lua/lvim/config/init.lua @@ -40,8 +40,7 @@ function M:init()    local lvim_lsp_config = require "lvim.lsp.config"    lvim.lsp = apply_defaults(lvim.lsp, vim.deepcopy(lvim_lsp_config)) -  local supported_languages = require "lvim.config.supported_languages" -  require("lvim.lsp.manager").init_defaults(supported_languages) +  require("lvim.lsp.manager").init_defaults()  end  local function handle_deprecated_settings() diff --git a/lua/lvim/config/supported_languages.lua b/lua/lvim/config/supported_languages.lua deleted file mode 100644 index ce5bc0db..00000000 --- a/lua/lvim/config/supported_languages.lua +++ /dev/null @@ -1,95 +0,0 @@ -return { -  "asm", -  "bash", -  "beancount", -  "bibtex", -  "bicep", -  "c", -  "c_sharp", -  "clojure", -  "cmake", -  "comment", -  "commonlisp", -  "cpp", -  "crystal", -  "cs", -  "css", -  "cuda", -  "d", -  "dart", -  "dockerfile", -  "dot", -  "elixir", -  "elm", -  "emmet", -  "erlang", -  "fennel", -  "fish", -  "fortran", -  "fsharp", -  "gdscript", -  "glimmer", -  "go", -  "gomod", -  "graphql", -  "haskell", -  "hcl", -  "heex", -  "html", -  "java", -  "javascript", -  "javascriptreact", -  "jsdoc", -  "json", -  "json5", -  "jsonc", -  "julia", -  "kotlin", -  "latex", -  "ledger", -  "less", -  "lua", -  "markdown", -  "nginx", -  "nix", -  "ocaml", -  "ocaml_interface", -  "perl", -  "php", -  "pioasm", -  "ps1", -  "puppet", -  "python", -  "ql", -  "query", -  "r", -  "regex", -  "rst", -  "ruby", -  "rust", -  "scala", -  "scss", -  "sh", -  "solidity", -  "sparql", -  "sql", -  "supercollider", -  "surface", -  "svelte", -  "swift", -  "tailwindcss", -  "terraform", -  "tex", -  "tlaplus", -  "toml", -  "tsx", -  "turtle", -  "typescript", -  "typescriptreact", -  "verilog", -  "vim", -  "vue", -  "yaml", -  "yang", -  "zig", -} diff --git a/lua/lvim/interface/popup.lua b/lua/lvim/interface/popup.lua index b628125c..6587f5d4 100644 --- a/lua/lvim/interface/popup.lua +++ b/lua/lvim/interface/popup.lua @@ -43,7 +43,9 @@ end  -- @param content_provider A function accepting the popup's layout and returning the content to display  function Popup:display(content_provider)    self.win_id = vim.api.nvim_open_win(self.buffer, true, self.layout) -  vim.lsp.util.close_preview_autocmd({ "BufHidden", "BufLeave" }, self.win_id) +  vim.api.nvim_command( +    string.format("autocmd BufHidden,BufLeave <buffer> ++once lua pcall(vim.api.nvim_win_close, %d, true)", self.win_id) +  )    local lines = content_provider(self.layout)    vim.api.nvim_buf_set_lines(self.bufnr, 0, -1, false, lines) 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 | 
