Closed ray-x closed 2 years ago
keep your other fold expr and use provider_selector
to disable ufo when you want.
well, I find the disable is not really working for me
-- only enable for following filetypes
local whitelist = {
["gotmpl"] = "indent",
["python"] = "lsp",
["html"] = "indent",
}
require("ufo").setup({
fold_virt_text_handler = handler,
provider_selector = function(bufnr, filetype)
if whitelist[filetype] then
return whitelist[filetype]
end
return "" -- everything not listed in whitelist should be disabled
end,
})
When I edit lua code, ufo still enabled.
can't reproduce.
Run UfoInspect
, will output:
Buffer: 19
Fold Status: start
Main provider:
Selected provider: nil
From the screen shot, I think ufo is disabled in config but not disable when I press za/zm
If selected provider
is set after the foldingRanges come back, make sure the folds are applied by ufo.
No idea why your remap za/zm
will make ufo request folding. Make sure that your foldmethod
value is expected. The window opt will be inherent as unexpected.
You can enable debug mode by UFO_LOG=debug nvim
and tail log tail -f ~/.cache/nvim/ufo.log
logs:
[22-06-20 19:07:20] [DEBUG] fold.lua:137 : attach bufnr: 1
[22-06-20 19:07:20] [DEBUG] fold.lua:137 : attach bufnr: 1
[22-06-20 19:07:20] [DEBUG] fold.lua:137 : attach bufnr: 2
[22-06-20 19:07:20] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:20] [DEBUG] fold.lua:137 : attach bufnr: 5
[22-06-20 19:07:20] [DEBUG] fold.lua:137 : attach bufnr: 2
[22-06-20 19:07:20] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:20] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:20] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:20] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:20] [DEBUG] decorator.lua:151 : folded: {}
...
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:169 : need add/update folded: 84
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:26] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:27] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: {}
[22-06-20 19:07:28] [DEBUG] decorator.lua:151 : folded: { 84 }
And also
Do you mean disable virtual text? I can't see any data returned by providers from the log and your image.
fold.lua:81 : requestFoldingRange({ "lsp", "indent" }, 1) has elapsed: 136ms
like this.
The setup : fold_virt_text_handler = handler,
But if ufo is not enabled, will virtual_text enable?
no selector ufo still enables virtual text. need detach. use UfoDetach
and reset your foldtext
option.
If a buffer is detached, ufo does nothing for the buffer (only for the detached buffer).
Disable will disable all features.
ok, that make sense.
Feature description
Would be great to provide an API and allow the binding of different folding expressions. One scenario is a very large (auto-generated) code (100k ~ 200k LOC per file) I am using.
Describe the solution you'd like
e.g.
Additional context
No response