local ensure = { 'shellcheck', 'hadolint', 'phpstan', } return { 'mfussenegger/nvim-lint', event = 'BufWritePre', opts = { sh = { 'shellcheck' }, bash = { 'shellcheck' }, php = { 'phpstan' }, dockerfile = { 'hadolint' }, }, config = function(_, opts) for _, pkg in pairs(ensure) do local p = require('mason-registry').get_package(pkg) if not p:is_installed() then p:install() end end require('lint').linters_by_ft = opts vim.api.nvim_create_autocmd({ 'BufWritePost' }, { callback = function() require('lint').try_lint() end, }) end, }