aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFredrik Averpil <fredrik.averpil@gmail.com>2024-03-18 15:00:48 +0100
committerGitHub <noreply@github.com>2024-03-18 10:00:48 -0400
commit8e24ca32e32b866a0bec443b937fe75bd5756fc8 (patch)
tree64a7c12099f862f58a39bbc3fb3db45f98f877d3
parentb81115d002745cdd5aaba5aea98d3677c4a56844 (diff)
feat: add linter plugin (#699)
-rw-r--r--init.lua1
-rw-r--r--lua/kickstart/plugins/lint.lua55
2 files changed, 56 insertions, 0 deletions
diff --git a/init.lua b/init.lua
index 6e813f4..c242886 100644
--- a/init.lua
+++ b/init.lua
@@ -831,6 +831,7 @@ require('lazy').setup({
--
-- require 'kickstart.plugins.debug',
-- require 'kickstart.plugins.indent_line',
+ -- require 'kickstart.plugins.lint',
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
-- This is the easiest way to modularize your config.
diff --git a/lua/kickstart/plugins/lint.lua b/lua/kickstart/plugins/lint.lua
new file mode 100644
index 0000000..7f0dc42
--- /dev/null
+++ b/lua/kickstart/plugins/lint.lua
@@ -0,0 +1,55 @@
+return {
+
+ { -- Linting
+ 'mfussenegger/nvim-lint',
+ event = { 'BufReadPre', 'BufNewFile' },
+ config = function()
+ local lint = require 'lint'
+ lint.linters_by_ft = {
+ markdown = { 'markdownlint' },
+ }
+
+ -- To allow other plugins to add linters to require('lint').linters_by_ft,
+ -- instead set linters_by_ft like this:
+ -- lint.linters_by_ft = lint.linters_by_ft or {}
+ -- lint.linters_by_ft['markdown'] = { 'markdownlint' }
+ --
+ -- However, note that this will enable a set of default linters,
+ -- which will cause errors unless these tools are available:
+ -- {
+ -- clojure = { "clj-kondo" },
+ -- dockerfile = { "hadolint" },
+ -- inko = { "inko" },
+ -- janet = { "janet" },
+ -- json = { "jsonlint" },
+ -- markdown = { "vale" },
+ -- rst = { "vale" },
+ -- ruby = { "ruby" },
+ -- terraform = { "tflint" },
+ -- text = { "vale" }
+ -- }
+ --
+ -- You can disable the default linters by setting their filetypes to nil:
+ -- lint.linters_by_ft['clojure'] = nil
+ -- lint.linters_by_ft['dockerfile'] = nil
+ -- lint.linters_by_ft['inko'] = nil
+ -- lint.linters_by_ft['janet'] = nil
+ -- lint.linters_by_ft['json'] = nil
+ -- lint.linters_by_ft['markdown'] = nil
+ -- lint.linters_by_ft['rst'] = nil
+ -- lint.linters_by_ft['ruby'] = nil
+ -- lint.linters_by_ft['terraform'] = nil
+ -- lint.linters_by_ft['text'] = nil
+
+ -- 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()
+ require('lint').try_lint()
+ end,
+ })
+ end,
+ },
+}