nvim-ufo icon indicating copy to clipboard operation
nvim-ufo copied to clipboard

Don't fold when file is short

Open Rizhiy opened this issue 1 year ago • 2 comments

Feature description

Disable folding if the file is less than X lines long.

Describe the solution you'd like

I used to have the following code when I was using built-in folding, to disable folding for short files:

local autocmd = vim.api.nvim_create_autocmd
autocmd({ "BufReadPost" }, {
    callback = function(_)
        if vim.api.nvim_buf_line_count(0) > 70 then
            vim.opt.foldlevel = 1
        else
            vim.opt.foldlevel = 10
        end
    end,
})

Is it possible to accomplish the same with ufo?

If not, that would be a nice feature to have.

Additional context

Not much point folding parts, if the whole file already fits on the screen.

Rizhiy avatar Jan 19 '24 03:01 Rizhiy

https://github.com/kevinhwang91/nvim-ufo/blob/b0741a647efd98d9abb6cb653e056d24a07e4581/doc/example.lua#L113-L127

For now, run this snippet in BufReadPost and replace closeAllFolds with closeFoldsWith under the condition.

If users need this feature, upvote this feature.

kevinhwang91 avatar Jan 19 '24 05:01 kevinhwang91

Just came across this issue while attempting to search for issues for an equal/opposite feature: "collapse all folds when file is larger than X lines".

Maybe a new feature could be created where a user can define 2 parameters, an upper and lower bound, or 1 parameter, that tells UFO to collapse/open all folds when the file is larger or smaller the given parameter(s).

I'm unsure if there is already a way to do this as I only found this plugin yesterday (and what a great plugin it is too).

Mo0rBy avatar May 21 '24 20:05 Mo0rBy