diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/nvim-lsp-installer/_generated/metadata.lua | 196 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/server.lua | 10 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/angularls/init.lua | 19 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/eslintls/init.lua | 2 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/servers/ltex/init.lua | 1 | ||||
| -rw-r--r-- | lua/nvim-lsp-installer/ui/status-win/init.lua | 5 |
6 files changed, 223 insertions, 10 deletions
diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua new file mode 100644 index 00000000..3b1f3755 --- /dev/null +++ b/lua/nvim-lsp-installer/_generated/metadata.lua @@ -0,0 +1,196 @@ +-- THIS FILE IS GENERATED. DO NOT EDIT MANUALLY. +-- stylua: ignore start +return { + angularls = { + filetypes = { "typescript", "html", "typescriptreact", "typescript.tsx" } + }, + ansiblels = { + filetypes = { "yaml", "yaml.ansible" } + }, + bashls = { + filetypes = { "sh" } + }, + bicep = { + filetypes = { "bicep" } + }, + clangd = { + filetypes = { "c", "cpp", "objc", "objcpp" } + }, + clojure_lsp = { + filetypes = { "clojure", "edn" } + }, + cmake = { + filetypes = { "cmake" } + }, + cssls = { + filetypes = { "css", "scss", "less" } + }, + denols = { + filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx" } + }, + diagnosticls = { + filetypes = {} + }, + dockerls = { + filetypes = { "Dockerfile", "dockerfile" } + }, + dotls = { + filetypes = { "dot" } + }, + efm = { + filetypes = {} + }, + elixirls = { + filetypes = { "elixir", "eelixir" } + }, + elmls = { + filetypes = { "elm" } + }, + ember = { + filetypes = { "handlebars", "typescript", "javascript" } + }, + emmet_ls = { + filetypes = { "html", "css" } + }, + erlangls = { + filetypes = { "erlang" } + }, + eslint = { + filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx", "vue" } + }, + eslintls = { + filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" } + }, + fortls = { + filetypes = { "fortran" } + }, + gopls = { + filetypes = { "go", "gomod" } + }, + graphql = { + filetypes = { "typescriptreact", "javascriptreact", "graphql" } + }, + groovyls = { + filetypes = { "groovy" } + }, + hls = { + filetypes = { "haskell", "lhaskell" } + }, + html = { + filetypes = { "html" } + }, + intelephense = { + filetypes = { "php" } + }, + jdtls = { + filetypes = { "java" } + }, + jedi_language_server = { + filetypes = { "python" } + }, + jsonls = { + filetypes = { "json" } + }, + kotlin_language_server = { + filetypes = { "kotlin" } + }, + lemminx = { + filetypes = { "xml", "xsd", "svg" } + }, + ltex = { + filetypes = { "tex", "bib", "markdown" } + }, + ocamlls = { + filetypes = { "ocaml", "reason" } + }, + omnisharp = { + filetypes = { "cs", "vb" } + }, + phpactor = { + filetypes = { "php" } + }, + powershell_es = { + filetypes = { "ps1" } + }, + prismals = { + filetypes = { "prisma" } + }, + puppet = { + filetypes = { "puppet" } + }, + purescriptls = { + filetypes = { "purescript" } + }, + pylsp = { + filetypes = { "python" } + }, + pyright = { + filetypes = { "python" } + }, + rescriptls = { + filetypes = { "rescript" } + }, + rome = { + filetypes = { "javascript", "javascriptreact", "json", "typescript", "typescript.tsx", "typescriptreact" } + }, + rust_analyzer = { + filetypes = { "rust" } + }, + serve_d = { + filetypes = { "d" } + }, + solang = { + filetypes = { "solidity" } + }, + solargraph = { + filetypes = { "ruby" } + }, + sqlls = { + filetypes = { "sql", "mysql" } + }, + sqls = { + filetypes = { "sql", "mysql" } + }, + stylelint_lsp = { + filetypes = { "css", "less", "scss", "sugarss", "vue", "wxss", "javascript", "javascriptreact", "typescript", "typescriptreact" } + }, + sumneko_lua = { + filetypes = { "lua" } + }, + svelte = { + filetypes = { "svelte" } + }, + tailwindcss = { + filetypes = { "aspnetcorerazor", "astro", "astro-markdown", "blade", "django-html", "edge", "eelixir", "ejs", "erb", "eruby", "gohtml", "haml", "handlebars", "hbs", "html", "html-eex", "jade", "leaf", "liquid", "markdown", "mdx", "mustache", "njk", "nunjucks", "php", "razor", "slim", "twig", "css", "less", "postcss", "sass", "scss", "stylus", "sugarss", "javascript", "javascriptreact", "reason", "rescript", "typescript", "typescriptreact", "vue", "svelte" } + }, + terraformls = { + filetypes = { "terraform" } + }, + texlab = { + filetypes = { "tex", "bib" } + }, + tflint = { + filetypes = { "terraform" } + }, + tsserver = { + filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx" } + }, + vala_ls = { + filetypes = { "vala", "genie" } + }, + vimls = { + filetypes = { "vim" } + }, + volar = { + filetypes = { "vue" } + }, + vuels = { + filetypes = { "vue" } + }, + yamlls = { + filetypes = { "yaml" } + }, + zls = { + filetypes = { "zig", "zir" } + } +}
\ No newline at end of file diff --git a/lua/nvim-lsp-installer/server.lua b/lua/nvim-lsp-installer/server.lua index ba90c5cf..2c46d00e 100644 --- a/lua/nvim-lsp-installer/server.lua +++ b/lua/nvim-lsp-installer/server.lua @@ -74,6 +74,16 @@ function M.Server:get_default_options() return vim.deepcopy(self._default_options) end +function M.Server:get_supported_filetypes() + local metadata = require "nvim-lsp-installer._generated.metadata" + + if metadata[self.name] then + return metadata[self.name].filetypes + end + + return {} +end + function M.Server:is_installed() return servers.is_server_installed(self.name) end diff --git a/lua/nvim-lsp-installer/servers/angularls/init.lua b/lua/nvim-lsp-installer/servers/angularls/init.lua index 5a545cd2..102ad32f 100644 --- a/lua/nvim-lsp-installer/servers/angularls/init.lua +++ b/lua/nvim-lsp-installer/servers/angularls/init.lua @@ -1,17 +1,18 @@ -local util = require "lspconfig/util" local server = require "nvim-lsp-installer.server" local npm = require "nvim-lsp-installer.installers.npm" --- Angular requires a node_modules directory to probe for @angular/language-service and typescript --- in order to use your projects configured versions. --- This defaults to the vim cwd, but will get overwritten by the resolved root of the file. -local function get_probe_dir(root_dir) - local project_root = util.find_node_modules_ancestor(root_dir) +return function(name, root_dir) + local util = require "lspconfig/util" + -- + -- Angular requires a node_modules directory to probe for @angular/language-service and typescript + -- in order to use your projects configured versions. + -- This defaults to the vim cwd, but will get overwritten by the resolved root of the file. + local function get_probe_dir(root_dir) + local project_root = util.find_node_modules_ancestor(root_dir) - return project_root and (project_root .. "/node_modules") or "" -end + return project_root and (project_root .. "/node_modules") or "" + end -return function(name, root_dir) local default_probe_dir = get_probe_dir(vim.fn.getcwd()) local executable_path = npm.executable(root_dir, "ngserver") diff --git a/lua/nvim-lsp-installer/servers/eslintls/init.lua b/lua/nvim-lsp-installer/servers/eslintls/init.lua index 7ffad30f..ec0afe2f 100644 --- a/lua/nvim-lsp-installer/servers/eslintls/init.lua +++ b/lua/nvim-lsp-installer/servers/eslintls/init.lua @@ -31,7 +31,6 @@ return function(name, root_dir) if not configs.eslintls then configs.eslintls = { default_config = { - filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" }, root_dir = lspconfig.util.root_pattern(".eslintrc*", "package.json", ".git"), -- Refer to https://github.com/Microsoft/vscode-eslint#settings-options for documentation. settings = { @@ -71,6 +70,7 @@ return function(name, root_dir) end end, default_options = { + filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" }, cmd = { "node", path.concat { root_dir, "server", "out", "eslintServer.js" }, "--stdio" }, handlers = { ["eslint/openDoc"] = function(_, _, open_doc) diff --git a/lua/nvim-lsp-installer/servers/ltex/init.lua b/lua/nvim-lsp-installer/servers/ltex/init.lua index 27d8bb7c..aaae5543 100644 --- a/lua/nvim-lsp-installer/servers/ltex/init.lua +++ b/lua/nvim-lsp-installer/servers/ltex/init.lua @@ -81,6 +81,7 @@ return function(name, root_dir) require "nvim-lsp-installer.servers.ltex.configure" end, default_options = { + filetypes = { "tex", "bib", "markdown" }, cmd = { path.concat { root_dir, platform.is_win and "ltex-ls.bat" or "ltex-ls" } }, }, } diff --git a/lua/nvim-lsp-installer/ui/status-win/init.lua b/lua/nvim-lsp-installer/ui/status-win/init.lua index e8931bce..ac5b997e 100644 --- a/lua/nvim-lsp-installer/ui/status-win/init.lua +++ b/lua/nvim-lsp-installer/ui/status-win/init.lua @@ -178,6 +178,10 @@ local function ServerMetadata(server) { get_relative_install_time(server.metadata.install_timestamp_seconds), "" }, } end), + { + { "filetypes", "LspInstallerMuted" }, + { server.metadata.filetypes, "" }, + }, Data.when(server.is_installed, { { "path", "LspInstallerMuted" }, { server.metadata.install_dir, "" }, @@ -380,6 +384,7 @@ local function create_initial_server_state(server) homepage = server.homepage, install_timestamp_seconds = nil, -- lazy install_dir = server.root_dir, + filetypes = table.concat(server:get_supported_filetypes(), ", "), }, installer = { is_queued = false, |
