aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorkylo252 <59826753+kylo252@users.noreply.github.com>2021-10-18 14:04:54 +0200
committerGitHub <noreply@github.com>2021-10-18 14:04:54 +0200
commitc87e2fec9f54a438ddfd50642426a2dd628de180 (patch)
tree3970936cb1227ccfde5a809f3e6fdb30d5a1aa3e /lua
parentsort :LspInstall, :LspUninstall completion items (diff)
downloadmason-c87e2fec9f54a438ddfd50642426a2dd628de180.tar
mason-c87e2fec9f54a438ddfd50642426a2dd628de180.tar.gz
mason-c87e2fec9f54a438ddfd50642426a2dd628de180.tar.bz2
mason-c87e2fec9f54a438ddfd50642426a2dd628de180.tar.lz
mason-c87e2fec9f54a438ddfd50642426a2dd628de180.tar.xz
mason-c87e2fec9f54a438ddfd50642426a2dd628de180.tar.zst
mason-c87e2fec9f54a438ddfd50642426a2dd628de180.zip
feat: autogen metadata table(s) (#159)
Co-authored-by: William Boman <william@redwill.se>
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/_generated/metadata.lua196
-rw-r--r--lua/nvim-lsp-installer/server.lua10
-rw-r--r--lua/nvim-lsp-installer/servers/angularls/init.lua19
-rw-r--r--lua/nvim-lsp-installer/servers/eslintls/init.lua2
-rw-r--r--lua/nvim-lsp-installer/servers/ltex/init.lua1
-rw-r--r--lua/nvim-lsp-installer/ui/status-win/init.lua5
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,