
## What is this PR for? This PR switches makrdownlint-cli to markdownlint-cli2. markdownlint-cli2 should be a bit faster than markdownlint-cli and has a more flexible configuration through files in the whole directory tree. The cli is maintained by David Anson who also wrote the markdown style checker itself which is used by the "old" cli and cli2. Blog post from David Anson regarding the new cli itself: https://dlaa.me/blog/post/markdownlintcli2 ## Does this PR fix an existing issue? No ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines.
103 lines
2.5 KiB
Lua
103 lines
2.5 KiB
Lua
LazyVim.on_very_lazy(function()
|
|
vim.filetype.add({
|
|
extension = { mdx = "markdown.mdx" },
|
|
})
|
|
end)
|
|
return {
|
|
recommended = function()
|
|
return LazyVim.extras.wants({
|
|
ft = { "markdown", "markdown.mdx" },
|
|
root = "README.md",
|
|
})
|
|
end,
|
|
{
|
|
"stevearc/conform.nvim",
|
|
optional = true,
|
|
opts = {
|
|
formatters_by_ft = {
|
|
["markdown"] = { { "prettierd", "prettier" }, "markdownlint-cli2", "markdown-toc" },
|
|
["markdown.mdx"] = { { "prettierd", "prettier" }, "markdownlint-cli2", "markdown-toc" },
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"williamboman/mason.nvim",
|
|
opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } },
|
|
},
|
|
{
|
|
"nvimtools/none-ls.nvim",
|
|
optional = true,
|
|
opts = function(_, opts)
|
|
local nls = require("null-ls")
|
|
opts.sources = vim.list_extend(opts.sources or {}, {
|
|
nls.builtins.diagnostics.markdownlint_cli2,
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"mfussenegger/nvim-lint",
|
|
optional = true,
|
|
opts = {
|
|
linters_by_ft = {
|
|
markdown = { "markdownlint-cli2" },
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
servers = {
|
|
marksman = {},
|
|
},
|
|
},
|
|
},
|
|
|
|
-- Markdown preview
|
|
{
|
|
"iamcco/markdown-preview.nvim",
|
|
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
|
build = function()
|
|
vim.fn["mkdp#util#install"]()
|
|
end,
|
|
keys = {
|
|
{
|
|
"<leader>cp",
|
|
ft = "markdown",
|
|
"<cmd>MarkdownPreviewToggle<cr>",
|
|
desc = "Markdown Preview",
|
|
},
|
|
},
|
|
config = function()
|
|
vim.cmd([[do FileType]])
|
|
end,
|
|
},
|
|
|
|
{
|
|
"lukas-reineke/headlines.nvim",
|
|
opts = function()
|
|
local opts = {}
|
|
for _, ft in ipairs({ "markdown", "norg", "rmd", "org" }) do
|
|
opts[ft] = {
|
|
headline_highlights = {},
|
|
-- disable bullets for now. See https://github.com/lukas-reineke/headlines.nvim/issues/66
|
|
bullets = {},
|
|
}
|
|
for i = 1, 6 do
|
|
local hl = "Headline" .. i
|
|
vim.api.nvim_set_hl(0, hl, { link = "Headline", default = true })
|
|
table.insert(opts[ft].headline_highlights, hl)
|
|
end
|
|
end
|
|
return opts
|
|
end,
|
|
ft = { "markdown", "norg", "rmd", "org" },
|
|
config = function(_, opts)
|
|
-- PERF: schedule to prevent headlines slowing down opening a file
|
|
vim.schedule(function()
|
|
require("headlines").setup(opts)
|
|
require("headlines").refresh()
|
|
end)
|
|
end,
|
|
},
|
|
}
|