lint.lua (1153B)
1 return { 2 -- Async linting 3 { 4 "mfussenegger/nvim-lint", 5 event = { "BufWritePost", "BufReadPost", "InsertLeave" }, 6 config = function() 7 local lint = require("lint") 8 9 lint.linters_by_ft = { 10 python = { "ruff" }, 11 sh = { "shellcheck" }, 12 bash = { "shellcheck" }, 13 yaml = { "yamllint" }, 14 ["yaml.ansible"] = { "ansible_lint" }, 15 terraform = { "tflint" }, 16 } 17 18 vim.api.nvim_create_autocmd({ "BufWritePost", "InsertLeave", "BufReadPost" }, { 19 callback = function() 20 lint.try_lint() 21 end, 22 }) 23 end, 24 }, 25 26 -- Formatting 27 { 28 "stevearc/conform.nvim", 29 event = "BufWritePre", 30 cmd = "ConformInfo", 31 opts = { 32 formatters_by_ft = { 33 python = { "ruff_format" }, 34 sh = { "shfmt" }, 35 bash = { "shfmt" }, 36 yaml = { "prettier" }, 37 lua = { "stylua" }, 38 terraform = { "terraform_fmt" }, 39 ["yaml.ansible"] = { "prettier" }, 40 }, 41 format_on_save = { 42 timeout_ms = 500, 43 lsp_fallback = true, 44 }, 45 }, 46 }, 47 }