custom v text

This commit is contained in:
andrzej 2024-11-07 13:34:26 +01:00
parent 091d0ab6bb
commit 8b461f9078
1 changed files with 40 additions and 0 deletions

View File

@ -8,7 +8,47 @@ return {
vim.o.foldenable = true
vim.keymap.set("n", "zR", require("ufo").openAllFolds)
vim.keymap.set("n", "zM", require("ufo").closeAllFolds)
local handler = function(virtText, lnum, endLnum, width, truncate, x)
-- local newVirtText = {}
-- local suffix = (" 󰁂 %d "):format(endLnum - lnum)
-- local sufWidth = vim.fn.strdisplaywidth(suffix)
-- local targetWidth = width - sufWidth
-- local curWidth = 0
-- for _, chunk in ipairs(virtText) do
-- local chunkText = chunk[1]
-- local chunkWidth = vim.fn.strdisplaywidth(chunkText)
-- if targetWidth > curWidth + chunkWidth then
-- table.insert(newVirtText, chunk)
-- else
-- chunkText = truncate(chunkText, targetWidth - curWidth)
-- local hlGroup = chunk[2]
-- table.insert(newVirtText, { chunkText, hlGroup })
-- chunkWidth = vim.fn.strdisplaywidth(chunkText)
-- -- str width returned from truncate() may less than 2nd argument, need padding
-- if curWidth + chunkWidth < targetWidth then
-- suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
-- end
-- break
-- end
-- curWidth = curWidth + chunkWidth
-- end
-- table.insert(newVirtText, { suffix, "MoreMsg" })
return virtText
end
require("ufo").setup({
fold_virt_text_handler = handler,
open_fold_hl_timeout = 0,
close_fold_kinds_for_ft = {},
enable_get_fold_virt_text = true,
preview = {
win_config = {
border = { "", "", "", "", "", "", "", "" },
winhighlight = "Normal:Folded",
winblend = 0,
},
},
provider_selector = function(bufnr, filetype, buftype)
return { "treesitter", "indent" }
end,