return { { "mfussenegger/nvim-lint", event = { "BufReadPre", "BufNewFile", }, config = function() require("mason-tool-installer").setup({ ensure_installed = { "prettier", -- prettier formatter -- "stylua", -- lua formatter "isort", -- python formatter "black", -- python formatter "pylint", -- python linter "biome", -- js linter }, }) local lint = require("lint") lint.linters_by_ft = { javascript = { "biomejs" }, typescript = { "biomejs" }, javascriptreact = { "biomejs" }, typescriptreact = { "biomejs" }, svelte = { "biomejs" }, python = { "pylint" }, markdown = { "proselint" }, } local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { group = lint_augroup, callback = function() lint.try_lint() end, }) vim.keymap.set("n", "l", function() lint.try_lint() end, { desc = "Trigger linting for current file" }) vim.keymap.set("n", "L", function() vim.diagnostic.open_float() end, { desc = "Open diagnostic in pop-up" }) end, }, { "WhoIsSethDaniel/toggle-lsp-diagnostics.nvim", config = function() require("toggle_lsp_diagnostics").init({ start_on = true, }) end, }, }