aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/treesitter/_fold.lua
diff options
context:
space:
mode:
authorJaehwang Jung <tomtomjhj@gmail.com>2024-12-29 16:00:47 +0900
committerLewis Russell <me@lewisr.dev>2024-12-29 07:35:39 +0000
commit48acbc4d645fe99532b33051006a65a57d36b981 (patch)
treebbd9f5f816735a2b709906d886c992497fa4858e /runtime/lua/vim/treesitter/_fold.lua
parentd3951be4a0df3ca8c9a4fce5c05f82fbdaac1df6 (diff)
downloadrneovim-48acbc4d645fe99532b33051006a65a57d36b981.tar.gz
rneovim-48acbc4d645fe99532b33051006a65a57d36b981.tar.bz2
rneovim-48acbc4d645fe99532b33051006a65a57d36b981.zip
fix(treesitter.foldexpr): refresh in the buffers affected by OptionSet
Diffstat (limited to 'runtime/lua/vim/treesitter/_fold.lua')
-rw-r--r--runtime/lua/vim/treesitter/_fold.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/runtime/lua/vim/treesitter/_fold.lua b/runtime/lua/vim/treesitter/_fold.lua
index 0cb5b497c7..10ba074ab5 100644
--- a/runtime/lua/vim/treesitter/_fold.lua
+++ b/runtime/lua/vim/treesitter/_fold.lua
@@ -378,9 +378,13 @@ api.nvim_create_autocmd('OptionSet', {
pattern = { 'foldminlines', 'foldnestmax' },
desc = 'Refresh treesitter folds',
callback = function()
- for bufnr, _ in pairs(foldinfos) do
+ local bufs = vim.v.option_type == 'local' and { api.nvim_get_current_buf() }
+ or vim.tbl_keys(foldinfos)
+ for _, bufnr in ipairs(bufs) do
foldinfos[bufnr] = FoldInfo.new()
- compute_folds_levels(bufnr, foldinfos[bufnr])
+ api.nvim_buf_call(bufnr, function()
+ compute_folds_levels(bufnr, foldinfos[bufnr])
+ end)
foldinfos[bufnr]:foldupdate(bufnr, 0, api.nvim_buf_line_count(bufnr))
end
end,