ajs-nvim/lua/plugins/linting.lua

57 lines
1.3 KiB
Lua
Raw Normal View History

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" },
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", "<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,
},
}