78 lines
2.2 KiB
Lua
78 lines
2.2 KiB
Lua
return {
|
|
{
|
|
"mason-org/mason.nvim",
|
|
build = ":MasonUpdate",
|
|
cmd = { "Mason", "MasonInstall", "MasonUninstall" },
|
|
opts = { ui = { border = "rounded" } },
|
|
},
|
|
{
|
|
"mason-org/mason-lspconfig.nvim",
|
|
event = { "BufReadPre", "BufNewFile" },
|
|
dependencies = {
|
|
"mason-org/mason.nvim",
|
|
"neovim/nvim-lspconfig",
|
|
"hrsh7th/cmp-nvim-lsp",
|
|
},
|
|
opts = {
|
|
ensure_installed = {
|
|
"pyright", -- Python
|
|
"ts_ls", -- TypeScript/JavaScript (was tsserver)
|
|
"lua_ls", -- Lua
|
|
"intelephense", -- PHP
|
|
"html", -- HTML
|
|
"cssls", -- CSS
|
|
"jsonls", -- JSON
|
|
"yamlls", -- YAML
|
|
"bashls", -- Bash
|
|
"dockerls", -- Docker
|
|
"gopls", -- Go
|
|
"rust_analyzer", -- Rust
|
|
"jdtls", -- Java
|
|
"clangd", -- C/C++
|
|
"omnisharp", -- C#
|
|
"vimls", -- Vim
|
|
"elixirls", -- Elixir
|
|
"kotlin_language_server",
|
|
"sqlls", -- SQL
|
|
"lemminx", -- XML
|
|
"marksman", -- Markdown
|
|
"svelte", -- Svelte
|
|
"tailwindcss", -- Tailwind CSS
|
|
"angularls", -- Angular
|
|
"vuels", -- Vue.js
|
|
"powershell_es", -- PowerShell
|
|
"fortls", -- Fortran
|
|
},
|
|
automatic_installation = true,
|
|
},
|
|
config = function(_, opts)
|
|
require("mason").setup({})
|
|
require("mason-lspconfig").setup(opts)
|
|
|
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
|
|
-- Custom setup example for Lua
|
|
vim.lsp.config("lua_ls", {
|
|
capabilities = capabilities,
|
|
settings = {
|
|
Lua = {
|
|
diagnostics = { globals = { "vim" } },
|
|
workspace = { checkThirdParty = false },
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Generic setup for everything else
|
|
for _, server in ipairs(opts.ensure_installed or {}) do
|
|
if server ~= "lua_ls" then
|
|
vim.lsp.config(server, { capabilities = capabilities })
|
|
end
|
|
end
|
|
|
|
-- Enable all listed servers
|
|
vim.lsp.enable(opts.ensure_installed)
|
|
end,
|
|
}
|
|
}
|
|
|