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" -- Упрощенная подсветка без градиента } } }; 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, } }, }, 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 } } })