return { { "mfussenegger/nvim-lint", events = { "BufWritePost", "BufReadPost", "InsertLeave" }, opts = { linters_by_ft = { fish = { "fish" }, css = { "stylelint" }, scss = { "stylelint" }, ts = { "eslint_d" }, js = { "eslint_d" }, jsx = { "eslint_d" }, tsx = { "eslint_d" }, -- Use the "*" filetype to run linters on all filetypes. -- ['*'] = { 'global linter' }, -- Use the "_" filetype to run linters on filetypes that don't have other linters configured. -- ['_'] = { 'fallback linter' }, -- ["*"] = { "typos" }, }, }, config = function() local lint = require("lint") lint.linters_by_ft = { css = { "stylelint" }, scss = { "stylelint" }, ts = { "eslint_d" }, js = { "eslint_d" }, javascript = { "eslint_d" }, typescript = { "eslint_d" }, typescriptreact = { "eslint_d" }, wpjsx = { "eslint_d" }, svelte = { "biomejs" }, python = { "ruff" }, go = { "golangcilint" }, } 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, }) end, }, }