mirror of
https://github.com/LazyVim/LazyVim.git
synced 2026-10-27 17:15:27 +01:00
## Description The `state` module in `render-markdown` is not expected to be accessed outside of the package and may be refactored in the future. Prevent any breaking changes in LazyVim by using the public API which was updated here: https://github.com/MeanderingProgrammer/render-markdown.nvim/commit/accaa600ba59022171275adf6640dda13004bd6f ## Related Issue(s) None ## Screenshots N/A ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines.
122 lines
2.8 KiB
Lua
122 lines
2.8 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 = {
|
|
["markdown-toc"] = {
|
|
condition = function(_, ctx)
|
|
for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do
|
|
if line:find("<!%-%- toc %-%->") then
|
|
return true
|
|
end
|
|
end
|
|
end,
|
|
},
|
|
["markdownlint-cli2"] = {
|
|
condition = function(_, ctx)
|
|
local diag = vim.tbl_filter(function(d)
|
|
return d.source == "markdownlint"
|
|
end, vim.diagnostic.get(ctx.buf))
|
|
return #diag > 0
|
|
end,
|
|
},
|
|
},
|
|
formatters_by_ft = {
|
|
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
|
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"mason-org/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()
|
|
require("lazy").load({ plugins = { "markdown-preview.nvim" } })
|
|
vim.fn["mkdp#util#install"]()
|
|
end,
|
|
keys = {
|
|
{
|
|
"<leader>cp",
|
|
ft = "markdown",
|
|
"<cmd>MarkdownPreviewToggle<cr>",
|
|
desc = "Markdown Preview",
|
|
},
|
|
},
|
|
config = function()
|
|
vim.cmd([[do FileType]])
|
|
end,
|
|
},
|
|
|
|
{
|
|
"MeanderingProgrammer/render-markdown.nvim",
|
|
opts = {
|
|
code = {
|
|
sign = false,
|
|
width = "block",
|
|
right_pad = 1,
|
|
},
|
|
heading = {
|
|
sign = false,
|
|
icons = {},
|
|
},
|
|
checkbox = {
|
|
enabled = false,
|
|
},
|
|
},
|
|
ft = { "markdown", "norg", "rmd", "org", "codecompanion" },
|
|
config = function(_, opts)
|
|
require("render-markdown").setup(opts)
|
|
Snacks.toggle({
|
|
name = "Render Markdown",
|
|
get = require("render-markdown").get,
|
|
set = require("render-markdown").set,
|
|
}):map("<leader>um")
|
|
end,
|
|
},
|
|
}
|