- Remove macOS/Windows clipboard branches, homebrew fzf path from .vimrc - Remove is_macos/is_windows logic from wezterm.lua - Drop scripts/nvim-offline-* and NVIM_OFFLINE plumbing from nvim config - Clean macOS section from .gitignore; simplify .gitattributes to LF-only - Trim README of offline-bundle section
98 lines
1.9 KiB
Lua
98 lines
1.9 KiB
Lua
local lsp_servers = {
|
|
'angularls',
|
|
'bashls',
|
|
'cssls',
|
|
'docker_compose_language_service',
|
|
'dockerls',
|
|
'emmet_language_server',
|
|
'eslint',
|
|
'graphql',
|
|
'html',
|
|
'jsonls',
|
|
'lua_ls',
|
|
'marksman',
|
|
'pyright',
|
|
'sqlls',
|
|
'tailwindcss',
|
|
'terraformls',
|
|
'ts_ls',
|
|
'vimls',
|
|
'yamlls',
|
|
}
|
|
|
|
local tools = {
|
|
'ast-grep',
|
|
'cbfmt',
|
|
'debugpy',
|
|
'editorconfig-checker',
|
|
'eslint_d',
|
|
'hadolint',
|
|
'js-debug-adapter',
|
|
'luacheck',
|
|
'prettier',
|
|
'prettierd',
|
|
'ruff',
|
|
'shellcheck',
|
|
'shfmt',
|
|
'stylua',
|
|
'vint',
|
|
'yamlfmt',
|
|
'codelldb',
|
|
}
|
|
|
|
local function dedupe(list)
|
|
local seen = {}
|
|
local out = {}
|
|
for _, item in ipairs(list) do
|
|
if not seen[item] then
|
|
seen[item] = true
|
|
table.insert(out, item)
|
|
end
|
|
end
|
|
return out
|
|
end
|
|
|
|
local tool_installer_list = dedupe(vim.list_extend(vim.deepcopy(tools), lsp_servers))
|
|
|
|
return {
|
|
{
|
|
'mason-org/mason-lspconfig.nvim',
|
|
opts = {
|
|
ensure_installed = lsp_servers,
|
|
-- Only auto-enable the LSP servers we explicitly manage in this config.
|
|
-- This avoids accidental multi-server attaches (e.g. ts_ls + vtsls),
|
|
-- which can produce duplicate Telescope definition results.
|
|
automatic_enable = lsp_servers,
|
|
},
|
|
dependencies = {
|
|
{
|
|
'mason-org/mason.nvim',
|
|
opts = {
|
|
ui = {
|
|
icons = {
|
|
package_installed = '✓',
|
|
package_pending = '➜',
|
|
package_uninstalled = '✗',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
'neovim/nvim-lspconfig',
|
|
},
|
|
},
|
|
{
|
|
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
|
dependencies = {
|
|
'mason-org/mason.nvim',
|
|
},
|
|
opts = {
|
|
ensure_installed = tool_installer_list,
|
|
integrations = {
|
|
-- keep mapping enabled so lspconfig names (e.g. ts_ls) resolve to Mason packages
|
|
['mason-lspconfig'] = true,
|
|
},
|
|
run_on_start = true,
|
|
start_delay = 0,
|
|
},
|
|
},
|
|
}
|