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 /store/config/nvim/lua | |
parent | a3068f170070ebb4a71baa4dec0dce1a1857e531 (diff) | |
download | crupest-c1eaffa555561127b54e3e11fe172cd8b029fc9a.tar.gz crupest-c1eaffa555561127b54e3e11fe172cd8b029fc9a.tar.bz2 crupest-c1eaffa555561127b54e3e11fe172cd8b029fc9a.zip |
config(nvim): add markdownlint find config feature.
Diffstat (limited to 'store/config/nvim/lua')
-rw-r--r-- | store/config/nvim/lua/setup/plugins/lint.lua | 32 |
1 files changed, 28 insertions, 4 deletions
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 |