Skip to content

Commit

Permalink
fix: don't collapse uncollapsable leaf nodes (#268)
Browse files Browse the repository at this point in the history
  • Loading branch information
stevearc committed Jun 17, 2023
1 parent 4e7da79 commit c30fb2c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
4 changes: 3 additions & 1 deletion lua/aerial/data.lua
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ function BufData:set_fold_level(level)
level = math.min(99, math.max(0, level))
self.collapse_level = level
for _, item in ipairs(self.flat_items) do
self:set_collapsed(item, level <= item.level)
if self:is_collapsable(item) then
self:set_collapsed(item, level <= item.level)
end
end
return level
end
Expand Down
8 changes: 6 additions & 2 deletions lua/aerial/tree.lua
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,12 @@ M.decrease_fold_level = function(bufnr, count)
end
local bufdata = data.get_or_create(bufnr)
-- If the current level is 99, start the decrement from the max level instead
-- (+1 because the leaves can actually be folded/collapsed)
local start = math.min(bufdata.collapse_level, bufdata.max_level + 1)
local max_level = bufdata.max_level
-- When folding is enabled, leaves can be folded so add 1
if config.manage_folds(bufnr) and config.link_tree_to_folds then
max_level = max_level + 1
end
local start = math.min(bufdata.collapse_level, max_level)
M.set_collapse_level(bufnr, start - count)
end

Expand Down

0 comments on commit c30fb2c

Please sign in to comment.