-- 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,
    enabled = false
  }
}
