kickstart.nvim/lua/kickstart/plugins/lint.lua

35 lines
1.1 KiB
Lua

-- Linting
local function gh(repo) return 'https://github.com/' .. repo end
do
vim.pack.add { gh 'mfussenegger/nvim-lint' }
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' }, -- Make sure to install `markdownlint` via mason / npm
dockerfile = { 'hadolint' },
json = { 'jsonlint' },
rst = { 'vale' },
text = { 'vale' },
javascript = { 'eslint' },
javascripttreact = { 'eslint' },
typescript = { 'eslint' },
svelte = { 'eslint_d' },
kotlin = { 'ktlint' },
terraform = { 'tflint' },
ruby = { "ruby" },
}
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true })
vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
group = lint_augroup,
callback = function()
-- Only run the linter in buffers that you can modify in order to
-- avoid superfluous noise, notably within the handy LSP pop-ups that
-- describe the hovered symbol using Markdown.
if vim.bo.modifiable then lint.try_lint() end
end,
})
end