2024-06-24 22:11:59 +02:00
|
|
|
LazyVim.on_very_lazy(function()
|
|
|
|
vim.filetype.add({
|
|
|
|
extension = { mdx = "markdown.mdx" },
|
|
|
|
})
|
|
|
|
end)
|
2023-10-14 17:42:02 +02:00
|
|
|
return {
|
2024-05-18 14:39:20 +02:00
|
|
|
recommended = function()
|
|
|
|
return LazyVim.extras.wants({
|
2024-06-23 08:56:15 +02:00
|
|
|
ft = { "markdown", "markdown.mdx" },
|
2024-05-18 14:39:20 +02:00
|
|
|
root = "README.md",
|
|
|
|
})
|
|
|
|
end,
|
2024-05-21 14:03:43 -07:00
|
|
|
{
|
|
|
|
"stevearc/conform.nvim",
|
|
|
|
optional = true,
|
|
|
|
opts = {
|
2024-06-29 15:37:48 +02:00
|
|
|
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,
|
|
|
|
},
|
2024-06-30 11:16:10 +02:00
|
|
|
["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,
|
|
|
|
},
|
2024-06-29 15:37:48 +02:00
|
|
|
},
|
2024-05-21 14:03:43 -07:00
|
|
|
formatters_by_ft = {
|
2024-06-29 15:37:48 +02:00
|
|
|
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
|
|
|
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
2024-05-21 14:03:43 -07:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-10-14 17:42:02 +02:00
|
|
|
{
|
2025-05-12 10:39:04 +02:00
|
|
|
"mason-org/mason.nvim",
|
2024-06-29 10:41:20 +02:00
|
|
|
opts = { ensure_installed = { "markdownlint-cli2", "markdown-toc" } },
|
2023-10-14 17:42:02 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"nvimtools/none-ls.nvim",
|
|
|
|
optional = true,
|
|
|
|
opts = function(_, opts)
|
|
|
|
local nls = require("null-ls")
|
|
|
|
opts.sources = vim.list_extend(opts.sources or {}, {
|
2024-06-29 10:41:20 +02:00
|
|
|
nls.builtins.diagnostics.markdownlint_cli2,
|
2023-10-14 17:42:02 +02:00
|
|
|
})
|
|
|
|
end,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"mfussenegger/nvim-lint",
|
|
|
|
optional = true,
|
|
|
|
opts = {
|
|
|
|
linters_by_ft = {
|
2024-06-29 10:41:20 +02:00
|
|
|
markdown = { "markdownlint-cli2" },
|
2023-10-14 17:42:02 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"neovim/nvim-lspconfig",
|
|
|
|
opts = {
|
|
|
|
servers = {
|
|
|
|
marksman = {},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
-- Markdown preview
|
|
|
|
{
|
|
|
|
"iamcco/markdown-preview.nvim",
|
|
|
|
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
|
|
|
|
build = function()
|
2024-08-31 10:43:48 +03:00
|
|
|
require("lazy").load({ plugins = { "markdown-preview.nvim" } })
|
2023-10-14 17:42:02 +02:00
|
|
|
vim.fn["mkdp#util#install"]()
|
|
|
|
end,
|
|
|
|
keys = {
|
|
|
|
{
|
|
|
|
"<leader>cp",
|
|
|
|
ft = "markdown",
|
|
|
|
"<cmd>MarkdownPreviewToggle<cr>",
|
2023-10-15 01:21:17 -04:00
|
|
|
desc = "Markdown Preview",
|
2023-10-14 17:42:02 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
config = function()
|
|
|
|
vim.cmd([[do FileType]])
|
|
|
|
end,
|
|
|
|
},
|
2023-10-16 08:36:27 +02:00
|
|
|
|
|
|
|
{
|
2024-08-31 03:16:45 -04:00
|
|
|
"MeanderingProgrammer/render-markdown.nvim",
|
2024-07-23 23:02:56 -07:00
|
|
|
opts = {
|
|
|
|
code = {
|
|
|
|
sign = false,
|
|
|
|
width = "block",
|
|
|
|
right_pad = 1,
|
|
|
|
},
|
|
|
|
heading = {
|
|
|
|
sign = false,
|
|
|
|
icons = {},
|
|
|
|
},
|
2025-01-16 10:05:30 +01:00
|
|
|
checkbox = {
|
|
|
|
enabled = false,
|
|
|
|
},
|
2024-07-23 23:02:56 -07:00
|
|
|
},
|
2025-01-30 21:38:56 +01:00
|
|
|
ft = { "markdown", "norg", "rmd", "org", "codecompanion" },
|
2024-07-24 08:21:36 +02:00
|
|
|
config = function(_, opts)
|
|
|
|
require("render-markdown").setup(opts)
|
2024-11-07 15:54:47 +01:00
|
|
|
Snacks.toggle({
|
2024-07-24 08:21:36 +02:00
|
|
|
name = "Render Markdown",
|
|
|
|
get = function()
|
|
|
|
return require("render-markdown.state").enabled
|
|
|
|
end,
|
|
|
|
set = function(enabled)
|
|
|
|
local m = require("render-markdown")
|
|
|
|
if enabled then
|
|
|
|
m.enable()
|
|
|
|
else
|
|
|
|
m.disable()
|
|
|
|
end
|
|
|
|
end,
|
2024-11-07 15:54:47 +01:00
|
|
|
}):map("<leader>um")
|
2024-07-24 08:21:36 +02:00
|
|
|
end,
|
2023-10-16 08:36:27 +02:00
|
|
|
},
|
2023-10-14 17:42:02 +02:00
|
|
|
}
|