2025-04-15 20:44:47 +03:00
|
|
|
require('markview').setup({
|
|
|
|
markdown = {
|
|
|
|
headings = {
|
|
|
|
enable = true,
|
|
|
|
org_shift_char = " ",
|
|
|
|
shift_width = 0,
|
|
|
|
org_indent = false,
|
|
|
|
org_indent_wrap = false,
|
|
|
|
|
|
|
|
heading_1 = {
|
|
|
|
style = "label",
|
|
|
|
sign = "",
|
|
|
|
},
|
|
|
|
heading_2 = {
|
|
|
|
style = "label",
|
|
|
|
sign = "",
|
|
|
|
},
|
|
|
|
heading_3 = {
|
|
|
|
style = "label",
|
|
|
|
},
|
|
|
|
heading_4 = {
|
|
|
|
style = "label",
|
|
|
|
},
|
|
|
|
heading_5 = {
|
|
|
|
style = "label",
|
|
|
|
},
|
|
|
|
heading_6 = {
|
|
|
|
style = "label",
|
|
|
|
},
|
|
|
|
setext_1 = {
|
|
|
|
style = "decorated",
|
|
|
|
sign = "", sign_hl = "MarkviewHeading1Sign",
|
|
|
|
icon = " ", hl = "MarkviewHeading1",
|
|
|
|
border = "▂"
|
|
|
|
},
|
|
|
|
setext_2 = {
|
|
|
|
style = "decorated",
|
|
|
|
sign = "", sign_hl = "MarkviewHeading2Sign",
|
|
|
|
icon = " ", hl = "MarkviewHeading2",
|
|
|
|
border = "▁"
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
horizontal_rules = {
|
|
|
|
enable = true, -- Оставляем предпросмотр горизонтальных линий включенным
|
|
|
|
|
|
|
|
parts = {
|
|
|
|
{
|
|
|
|
type = "repeating",
|
|
|
|
repeat_amount = function (buffer)
|
|
|
|
local utils = require("markview.utils");
|
|
|
|
local window = utils.buf_getwin(buffer)
|
|
|
|
|
|
|
|
local width = vim.api.nvim_win_get_width(window)
|
|
|
|
local textoff = vim.fn.getwininfo(window)[1].textoff;
|
|
|
|
|
|
|
|
return math.floor((width - textoff - 3) / 2);
|
|
|
|
end,
|
|
|
|
|
|
|
|
text = "─", -- Символ для повторения
|
|
|
|
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type = "text",
|
|
|
|
text = " $ ", -- Центральный символ изменен на "$"
|
|
|
|
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type = "repeating",
|
|
|
|
repeat_amount = function (buffer)
|
|
|
|
local utils = require("markview.utils");
|
|
|
|
local window = utils.buf_getwin(buffer)
|
|
|
|
|
|
|
|
local width = vim.api.nvim_win_get_width(window)
|
|
|
|
local textoff = vim.fn.getwininfo(window)[1].textoff;
|
|
|
|
|
|
|
|
return math.ceil((width - textoff - 3) / 2);
|
|
|
|
end,
|
|
|
|
|
|
|
|
direction = "right",
|
|
|
|
text = "─", -- Символ для повторения
|
|
|
|
hl = "MarkviewBlockQuoteDefault" -- Упрощенная подсветка без градиента
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
2025-04-15 21:10:09 +03:00
|
|
|
list_items = {
|
|
|
|
enable = true,
|
|
|
|
wrap = false,
|
|
|
|
|
|
|
|
indent_size = 2,
|
|
|
|
shift_width = 4,
|
|
|
|
|
|
|
|
marker_minus = {
|
|
|
|
add_padding = false,
|
|
|
|
conceal_on_checkboxes = true,
|
|
|
|
|
|
|
|
text = "",
|
|
|
|
hl = "MarkviewListItemMinus"
|
|
|
|
},
|
|
|
|
|
|
|
|
marker_plus = {
|
|
|
|
add_padding = true,
|
|
|
|
conceal_on_checkboxes = true,
|
|
|
|
|
|
|
|
text = "",
|
|
|
|
hl = "MarkviewListItemPlus"
|
|
|
|
},
|
|
|
|
|
|
|
|
marker_star = {
|
|
|
|
add_padding = true,
|
|
|
|
conceal_on_checkboxes = true,
|
|
|
|
|
|
|
|
text = "",
|
|
|
|
hl = "MarkviewListItemStar"
|
|
|
|
},
|
|
|
|
|
|
|
|
marker_dot = {
|
|
|
|
add_padding = true,
|
|
|
|
conceal_on_checkboxes = true,
|
|
|
|
},
|
|
|
|
|
|
|
|
marker_parenthesis = {
|
|
|
|
add_padding = true,
|
|
|
|
conceal_on_checkboxes = true,
|
|
|
|
}
|
|
|
|
},
|
2025-04-15 20:44:47 +03:00
|
|
|
},
|
2025-04-15 21:10:09 +03:00
|
|
|
|
|
|
|
|
2025-04-15 20:44:47 +03:00
|
|
|
preview = {
|
|
|
|
enable = true,
|
|
|
|
enable_hybrid_mode = true,
|
|
|
|
modes = { "n", "i", "v", "c" }, -- Работает во всех основных режимах
|
|
|
|
hybrid_modes = { "n", "v", "c" }, -- Hybrid mode во всех режимах
|
|
|
|
linewise_hybrid_mode = true, -- Линейный режим hybrid
|
|
|
|
edit_range = { 0, 0 }, -- Диапазон для input mode (-1, 1)
|
|
|
|
draw_range = { vim.o.lines, vim.o.lines }, -- Рендерить весь остальной текст
|
|
|
|
debounce = 200, -- Задержка обновления
|
|
|
|
filetypes = { "markdown", "rmd", "quarto", "typst" }, -- Поддерживаемые форматы
|
|
|
|
ignore_buftypes = { "nofile" },
|
|
|
|
callbacks = {
|
|
|
|
on_attach = function(_, wins)
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
vim.wo[win].conceallevel = 3
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
on_detach = function(_, wins)
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
vim.wo[win].conceallevel = 0
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
on_enable = function(_, wins)
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
vim.wo[win].conceallevel = 3
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
on_disable = function(_, wins)
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
vim.wo[win].conceallevel = 0
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
on_hybrid_enable = function(_, wins)
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
vim.wo[win].conceallevel = 3
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
on_hybrid_disable = function(_, wins)
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
vim.wo[win].conceallevel = 0
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
on_mode_change = function(_, wins, current_mode)
|
|
|
|
local preview_modes = { "n", "i", "v", "c" }
|
|
|
|
for _, win in ipairs(wins) do
|
|
|
|
if vim.tbl_contains(preview_modes, current_mode) then
|
|
|
|
vim.wo[win].conceallevel = 3
|
|
|
|
else
|
|
|
|
vim.wo[win].conceallevel = 0
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|