return { { "williamboman/mason.nvim", config = function() require("mason").setup { ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗", }, border = "rounded", }, } end, }, { "williamboman/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup() require("mason-lspconfig").setup_handlers { -- The first entry (without a key) will be the default handler -- and will be called for each installed server that doesn't have -- a dedicated handler. function(server_name) -- default handler (optional) require("lspconfig")[server_name].setup {} end, -- Next, you can provide a dedicated handler for specific servers. -- For example, a handler override for the `rust_analyzer`: -- ["rust_analyzer"] = function () -- require("rust-tools").setup {} -- end } end, }, { "neovim/nvim-lspconfig", config = function() require "plugins/lspconfig/config"() end, }, { "jose-elias-alvarez/null-ls.nvim", dependencies = { "nvim-lua/plenary.nvim" }, config = function() local null_ls = require "null-ls" local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) null_ls.setup { border = "rounded", cmd = { "nvim" }, debounce = 250, debug = false, default_timeout = 5000, diagnostic_config = {}, diagnostics_format = "#{m}", fallback_severity = vim.diagnostic.severity.ERROR, log_level = "warn", notify_format = "[null-ls] %s", on_init = nil, on_exit = nil, root_dir = require("null-ls.utils").root_pattern(".null-ls-root", "Makefile", ".git"), should_attach = nil, sources = nil, temp_dir = nil, update_in_insert = false, -- formatting on save on_attach = function(client, bufnr) if client.supports_method "textDocument/formatting" then vim.api.nvim_clear_autocmds { group = augroup, buffer = bufnr } vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, buffer = bufnr, callback = function() vim.lsp.buf.format { bufnr = bufnr } end, }) end end, } end, }, { "jay-babu/mason-null-ls.nvim", event = { "BufReadPre", "BufNewFile" }, dependencies = { "williamboman/mason.nvim", "jose-elias-alvarez/null-ls.nvim", }, config = function() require("mason-null-ls").setup { automatic_setup = true, ensure_installed = { "shfmt", "prettier", "stylua" }, handlers = {}, } end, }, }