49 lines
1.1 KiB
Lua

local utils = require("utils")
return {
"mfussenegger/nvim-lint",
config = function()
local function file_exists(name)
local f = io.open(name, "r")
if f ~= nil then
io.close(f)
return true
else
return false
end
end
local function decide_js_linter()
local cwd = vim.fn.getcwd()
if file_exists(cwd .. "/biome.json") or file_exists(cwd .. "/biome.jsonc") then
return "biomejs"
else
return "eslint_d"
end
end
local lint = require("lint")
lint.linters_by_ft = {
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,
})
utils.nmapkey("<leader>l", function()
lint.try_lint()
end, "Trigger linting for current file")
end,
}