Nvim: minor tweaks for multiple plugins, better folds
This commit is contained in:
@@ -21,9 +21,64 @@
|
||||
-- },
|
||||
|
||||
|
||||
return {
|
||||
"chrisgrieser/nvim-origami",
|
||||
event = "BufReadPost", -- later or on keypress would prevent saving folds
|
||||
config = true, -- needed even when using default config
|
||||
enabled = true
|
||||
return
|
||||
{
|
||||
{
|
||||
"chrisgrieser/nvim-origami",
|
||||
event = "BufReadPost", -- later or on keypress would prevent saving folds
|
||||
opts = {
|
||||
keepFoldsAcrossSessions = false,
|
||||
},
|
||||
enabled = true
|
||||
}, {
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user