91 lines
2.1 KiB
Lua
91 lines
2.1 KiB
Lua
|
return {
|
||
|
{
|
||
|
"nvim-treesitter/nvim-treesitter",
|
||
|
opts = function(_, opts)
|
||
|
if type(opts.ensure_installed) == "table" then
|
||
|
vim.list_extend(opts.ensure_installed, { "markdown", "markdown_inline" })
|
||
|
end
|
||
|
end,
|
||
|
},
|
||
|
{
|
||
|
"williamboman/mason.nvim",
|
||
|
opts = function(_, opts)
|
||
|
opts.ensure_installed = opts.ensure_installed or {}
|
||
|
vim.list_extend(opts.ensure_installed, { "markdownlint", "marksman" })
|
||
|
end,
|
||
|
},
|
||
|
{
|
||
|
"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,
|
||
|
})
|
||
|
end,
|
||
|
},
|
||
|
{
|
||
|
"mfussenegger/nvim-lint",
|
||
|
optional = true,
|
||
|
opts = {
|
||
|
linters_by_ft = {
|
||
|
markdown = { "markdownlint" },
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
"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 = {},
|
||
|
}
|
||
|
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,
|
||
|
},
|
||
|
}
|