diff options
author | crupest <crupest@outlook.com> | 2025-06-12 03:05:15 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-06-12 15:43:25 +0800 |
commit | c1eaffa555561127b54e3e11fe172cd8b029fc9a (patch) | |
tree | b9c8fbb88e0e45b4ee7c81b232e5b0986c30b5d7 | |
parent | a3068f170070ebb4a71baa4dec0dce1a1857e531 (diff) | |
download | crupest-c1eaffa555561127b54e3e11fe172cd8b029fc9a.tar.gz crupest-c1eaffa555561127b54e3e11fe172cd8b029fc9a.tar.bz2 crupest-c1eaffa555561127b54e3e11fe172cd8b029fc9a.zip |
config(nvim): add markdownlint find config feature.
-rw-r--r-- | .editorconfig | 3 | ||||
-rw-r--r-- | store/config/nvim/lua/setup/plugins/lint.lua | 32 | ||||
-rw-r--r-- | www/.markdownlint.json | 3 |
3 files changed, 32 insertions, 6 deletions
diff --git a/.editorconfig b/.editorconfig index ea11c46..69ce65e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -29,3 +29,6 @@ indent_size = 2 [*.py] profile = black + +[*.lua] +indent_size = 4 diff --git a/store/config/nvim/lua/setup/plugins/lint.lua b/store/config/nvim/lua/setup/plugins/lint.lua index 23ede70..b33db22 100644 --- a/store/config/nvim/lua/setup/plugins/lint.lua +++ b/store/config/nvim/lua/setup/plugins/lint.lua @@ -1,3 +1,7 @@ +--- spellchecker: words markdownlintrc + +---@alias CruLinter { name: string, config_patterns: string[], filetypes: string[] | nil, fast: boolean } + local cspell = { name = "cspell", config_patterns = { @@ -29,8 +33,29 @@ local markdownlint = { fast = true, } -local linters = { cspell, markdownlint } +local linters = { cspell = cspell, markdownlint = markdownlint } + +---@param linter CruLinter +---@param buf integer +---@return string | nil +local function find_config(linter, buf) + local files = vim.fs.find(linter.config_patterns, { + path = vim.api.nvim_buf_get_name(buf), upward = true }) + if #files ~= 0 then + return files[1]; + end + return nil +end + +vim.list_extend(require("lint.linters.markdownlint").args, { + "--config", + function() + return find_config(markdownlint, 0); + end +}) +---@param linter CruLinter +---@param buf integer function vim.crupest.lint(linter, buf) if linter.filetypes then local filetype = vim.api.nvim_get_option_value("filetype", { buf = buf }) @@ -39,14 +64,13 @@ function vim.crupest.lint(linter, buf) end end - if 0 ~= #vim.fs.find(linter.config_patterns, { - path = vim.api.nvim_buf_get_name(buf), upward = true }) then + if find_config(linter, buf) then require("lint").try_lint(linter.name) end end function vim.crupest.lint_all(buf, fast) - for _, linter in ipairs(linters) do + for _, linter in pairs(linters) do if not fast or linter.fast then vim.crupest.lint(linter, buf) end diff --git a/www/.markdownlint.json b/www/.markdownlint.json index 2811a59..12bc65e 100644 --- a/www/.markdownlint.json +++ b/www/.markdownlint.json @@ -1,6 +1,5 @@ { "$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/main/schema/markdownlint-config-schema.json", "default": true, - "MD013": false, - "MD014": false + "MD013": false } |