aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--dot_config/nvim/lua/plugins/lsp.lua101
1 files changed, 57 insertions, 44 deletions
diff --git a/dot_config/nvim/lua/plugins/lsp.lua b/dot_config/nvim/lua/plugins/lsp.lua
index 1a115db..69f8163 100644
--- a/dot_config/nvim/lua/plugins/lsp.lua
+++ b/dot_config/nvim/lua/plugins/lsp.lua
@@ -19,50 +19,63 @@ require("mason-lspconfig").setup({
},
})
require("mason-tool-installer").setup({
- ensure_installed = {
- "actionlint",
- "autotools-language-server",
- "basedpyright",
- "bash-language-server",
- "clangd",
- "codelldb",
- "codespell",
- "css-lsp",
- "dockerfile-language-server",
- "gh",
- "gh-actions-language-server",
- "groovy-language-server",
- "hadolint",
- "html-lsp",
- "jq",
- "json-lsp",
- "jsonlint",
- "just-lsp",
- "lua-language-server",
- "markdownlint",
- "mdformat",
- "neocmakelsp",
- "nginx-config-formatter",
- "nginx-language-server",
- "npm-groovy-lint",
- "prettier",
- "ruff",
- "rust-analyzer",
- "selene",
- "shellcheck",
- "shellharden",
- "shfmt",
- "stylelint",
- "stylua",
- "systemd-lsp",
- "systemdlint",
- "taplo",
- "typescript-language-server",
- "typos",
- "yaml-language-server",
- "yamllint",
- "yq",
- },
+ ensure_installed = (function()
+ local tools = {
+ "actionlint",
+ "autotools-language-server",
+ "basedpyright",
+ "bash-language-server",
+ "clangd",
+ "codelldb",
+ "codespell",
+ "css-lsp",
+ "dockerfile-language-server",
+ "gh",
+ "gh-actions-language-server",
+ "groovy-language-server",
+ "hadolint",
+ "html-lsp",
+ "jq",
+ "json-lsp",
+ "jsonlint",
+ "just-lsp",
+ "lua-language-server",
+ "markdownlint",
+ "mdformat",
+ "neocmakelsp",
+ "nginx-config-formatter",
+ "nginx-language-server",
+ "npm-groovy-lint",
+ "prettier",
+ "ruff",
+ "rust-analyzer",
+ "selene",
+ "shellcheck",
+ "shellharden",
+ "shfmt",
+ "stylelint",
+ "stylua",
+ "systemd-lsp",
+ "systemdlint",
+ "taplo",
+ "typescript-language-server",
+ "typos",
+ "yaml-language-server",
+ "yamllint",
+ "yq",
+ }
+ -- Skip Mason install when the tool is already on PATH from the system
+ -- (e.g. shellharden via nix-profile on the remote-dev VM, where Mason's
+ -- cargo-build install path would fail). Mason's runners still discover
+ -- PATH binaries, so conform.nvim/nvim-lint keep working.
+ local filtered = {}
+ for _, name in ipairs(tools) do
+ if vim.fn.executable(name) ~= 1 then
+ table.insert(filtered, name)
+ end
+ end
+ return filtered
+ end)(),
})
vim.api.nvim_create_autocmd("LspAttach", {