aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorThomas Vigouroux <tomvig38@gmail.com>2020-08-28 17:30:25 +0200
committerThomas Vigouroux <tomvig38@gmail.com>2020-09-01 21:51:17 +0200
commit36d2c7d746ec13cb13a20aba972f34ae2a581fed (patch)
tree7683f9bd1e7b3d0e624d72009185f2471d610f9f /lua
parentfix(fold): revamp fold (diff)
downloadnvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.tar
nvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.tar.gz
nvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.tar.bz2
nvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.tar.lz
nvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.tar.xz
nvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.tar.zst
nvim-treesitter-36d2c7d746ec13cb13a20aba972f34ae2a581fed.zip
fix(fold): fix #350
Also correctly handle things like : if (foo) { } if (bar) { }
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-treesitter/fold.lua14
1 files changed, 10 insertions, 4 deletions
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