From c44d819ae1f29cd34ee3b2350b5c702caed949c3 Mon Sep 17 00:00:00 2001 From: Jaehwang Jung Date: Fri, 7 Jul 2023 19:12:46 +0900 Subject: fix(treesitter): update folds in all relevant windows (#24230) Problem: When using treesitter foldexpr, * :diffput/get open diff folds, and * folds are not updated in other windows that contain the updated buffer. Solution: Update folds in all windows that contain the updated buffer and use expr foldmethod. --- test/functional/treesitter/parser_spec.lua | 81 ------------------------------ 1 file changed, 81 deletions(-) (limited to 'test/functional/treesitter/parser_spec.lua') diff --git a/test/functional/treesitter/parser_spec.lua b/test/functional/treesitter/parser_spec.lua index 7cfe5b69de..ae26b92f52 100644 --- a/test/functional/treesitter/parser_spec.lua +++ b/test/functional/treesitter/parser_spec.lua @@ -885,87 +885,6 @@ int x = INT_MAX; end) end) - it("can fold via foldexpr", function() - insert(test_text) - - local function get_fold_levels() - return exec_lua([[ - local res = {} - for i = 1, vim.api.nvim_buf_line_count(0) do - res[i] = vim.treesitter.foldexpr(i) - end - return res - ]]) - end - - exec_lua([[vim.treesitter.get_parser(0, "c")]]) - - eq({ - [1] = '>1', - [2] = '1', - [3] = '1', - [4] = '1', - [5] = '>2', - [6] = '2', - [7] = '2', - [8] = '1', - [9] = '1', - [10] = '>2', - [11] = '2', - [12] = '2', - [13] = '2', - [14] = '2', - [15] = '>3', - [16] = '3', - [17] = '3', - [18] = '2', - [19] = '1' }, get_fold_levels()) - - helpers.command('1,2d') - - eq({ - [1] = '0', - [2] = '0', - [3] = '>1', - [4] = '1', - [5] = '1', - [6] = '0', - [7] = '0', - [8] = '>1', - [9] = '1', - [10] = '1', - [11] = '1', - [12] = '1', - [13] = '>2', - [14] = '2', - [15] = '2', - [16] = '1', - [17] = '0' }, get_fold_levels()) - - helpers.command('1put!') - - eq({ - [1] = '>1', - [2] = '1', - [3] = '1', - [4] = '1', - [5] = '>2', - [6] = '2', - [7] = '2', - [8] = '1', - [9] = '1', - [10] = '>2', - [11] = '2', - [12] = '2', - [13] = '2', - [14] = '2', - [15] = '>3', - [16] = '3', - [17] = '3', - [18] = '2', - [19] = '1' }, get_fold_levels()) - end) - it('tracks the root range properly (#22911)', function() insert([[ int main() { -- cgit