From 36d2c7d746ec13cb13a20aba972f34ae2a581fed Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Fri, 28 Aug 2020 17:30:25 +0200 Subject: fix(fold): fix #350 Also correctly handle things like : if (foo) { } if (bar) { } --- lua/nvim-treesitter/fold.lua | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'lua') diff --git a/lua/nvim-treesitter/fold.lua b/lua/nvim-treesitter/fold.lua index 46320b14a..0bfe0f7cc 100644 --- a/lua/nvim-treesitter/fold.lua +++ b/lua/nvim-treesitter/fold.lua @@ -39,8 +39,15 @@ local folds_levels = utils.memoize_by_buf_tick(function(bufnr) local current_level = 0 for lnum=0,api.nvim_buf_line_count(bufnr) do - current_level = current_level + (levels_tmp[lnum] or 0) - levels[lnum + 1] = current_level + local prefix= '' + local shift = levels_tmp[lnum] or 0 + + if levels_tmp[lnum] and shift >= 0 then + prefix = '>' + end + + current_level = current_level + shift + levels[lnum + 1] = prefix .. tostring(current_level) end return levels @@ -53,8 +60,7 @@ function M.get_fold_indic(lnum) local levels = folds_levels(buf) or {} - return tostring(levels[lnum] or 0) - + return levels[lnum] or '0' end return M -- cgit v1.2.3-70-g09d2