diff options
| author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-08-28 17:30:25 +0200 |
|---|---|---|
| committer | Thomas Vigouroux <tomvig38@gmail.com> | 2020-09-01 21:51:17 +0200 |
| commit | 36d2c7d746ec13cb13a20aba972f34ae2a581fed (patch) | |
| tree | 7683f9bd1e7b3d0e624d72009185f2471d610f9f /lua | |
| parent | fix(fold): revamp fold (diff) | |
| download | nvim-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.lua | 14 |
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 |
