2025-12-05 17:00:35 -08:00

48 lines
1.1 KiB
Lua

local utils = require("utils")
return {
"mfussenegger/nvim-lint",
config = function()
local lint = require("lint")
local function decide_js_linter()
if utils.cwd_is_biome() then
return "biomejs"
else
return "eslint_d"
end
end
lint.linters_by_ft = {
haskell = { "hlint" },
javascript = { decide_js_linter() },
javascriptreact = { decide_js_linter() },
markdown = { "markdownlint" },
python = { "flake8" },
sh = { "shellcheck" },
typescript = { decide_js_linter() },
typescriptreact = { decide_js_linter() },
}
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.api.nvim_create_autocmd({ "BufWritePost", "BufEnter" }, {
group = vim.api.nvim_create_augroup("lint", { clear = true }),
callback = function(args)
if not utils.buf_is_obsidian(args.buf) then
lint.try_lint()
end
end,
})
utils.nmapkey("<leader>l", function()
lint.try_lint()
end, "Trigger linting for current file")
end,
}