mirror of
https://github.com/LazyVim/LazyVim.git
synced 2026-07-22 04:21:08 +00: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:
accaa600ba
## Related Issue(s)
None
## Screenshots
N/A
## Checklist
- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
121 lines
2.8 KiB
Lua
121 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,
|
|
},
|
|
}
|