-- return { -- 'anuvyklack/pretty-fold.nvim', -- config = function() -- require('pretty-fold').setup() -- require('pretty-fold').ft_setup('cpp', { -- process_comment_signs = false, -- --comment_signs = { -- -- '//', -- C++ Doxygen comments -- --}, -- }) -- end -- }, -- { -- 'anuvyklack/fold-preview.nvim', -- dependencies = 'anuvyklack/keymap-amend.nvim', -- config = function() -- require('fold-preview').setup({ -- -- Your configuration goes here. -- }) -- end -- }, return { { "chrisgrieser/nvim-origami", event = "BufReadPost", -- later or on keypress would prevent saving folds opts = { keepFoldsAcrossSessions = false, }, enabled = false }, { "kevinhwang91/nvim-ufo", dependencies = { "kevinhwang91/promise-async" }, config = function() local handler = function(virtText, lnum, endLnum, width, truncate) 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 newVirtText end vim.cmd [[ hi default UfoFoldedFg guifg=Normal.foreground hi default UfoFoldedBg guibg=Visual.background hi default link UfoPreviewSbar PmenuSbar hi default link UfoPreviewThumb PmenuThumb hi default link UfoPreviewWinBar UfoFoldedBg hi default link UfoPreviewCursorLine Visual hi default link UfoFoldedEllipsis Visual hi default link UfoCursorFoldedLine Normal hi Folded gui=NONE guibg=Normal.background ]] require("ufo").setup({ fold_virt_text_handler = handler }) end } }