2024-03-12 15:13:19 +00:00
|
|
|
return {
|
|
|
|
{
|
|
|
|
"mfussenegger/nvim-lint",
|
|
|
|
event = {
|
|
|
|
"BufReadPre",
|
|
|
|
"BufNewFile",
|
|
|
|
},
|
2024-03-13 11:44:11 +00:00
|
|
|
|
2024-03-12 15:13:19 +00:00
|
|
|
config = function()
|
2024-03-13 11:44:11 +00:00
|
|
|
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
|
|
|
|
},
|
|
|
|
})
|
2024-03-12 15:13:19 +00:00
|
|
|
local lint = require("lint")
|
|
|
|
lint.linters_by_ft = {
|
2024-03-13 11:44:11 +00:00
|
|
|
javascript = { "biomejs" },
|
|
|
|
typescript = { "biomejs" },
|
|
|
|
javascriptreact = { "biomejs" },
|
|
|
|
typescriptreact = { "biomejs" },
|
|
|
|
svelte = { "biomejs" },
|
2024-03-12 15:13:19 +00:00
|
|
|
python = { "pylint" },
|
2024-03-16 13:29:26 +00:00
|
|
|
-- markdown = { "marksman" },
|
2024-03-16 12:24:45 +00:00
|
|
|
lua = {"luacheck"},
|
2024-03-12 15:13:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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", "<leader>l", function()
|
|
|
|
lint.try_lint()
|
|
|
|
end, { desc = "Trigger linting for current file" })
|
2024-03-12 15:49:18 +00:00
|
|
|
vim.keymap.set("n", "<leader>L", function()
|
|
|
|
vim.diagnostic.open_float()
|
|
|
|
end, { desc = "Open diagnostic in pop-up" })
|
2024-03-12 15:13:19 +00:00
|
|
|
end,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"WhoIsSethDaniel/toggle-lsp-diagnostics.nvim",
|
|
|
|
config = function()
|
|
|
|
require("toggle_lsp_diagnostics").init({
|
2024-03-13 11:44:11 +00:00
|
|
|
start_on = true,
|
2024-03-12 15:13:19 +00:00
|
|
|
})
|
|
|
|
end,
|
|
|
|
},
|
|
|
|
}
|