mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-12-01 22:52:01 +02:00
Collapse/expand all files in tree
Co-authored-by: Stefan Haller <stefan@haller-berlin.de>
This commit is contained in:
committed by
Stefan Haller
parent
14a91d9829
commit
7bea41534b
@@ -31,6 +31,8 @@ type ITree[T any] interface {
|
||||
IsCollapsed(path string) bool
|
||||
ToggleCollapsed(path string)
|
||||
CollapsedPaths() *CollapsedPaths
|
||||
CollapseAll()
|
||||
ExpandAll()
|
||||
}
|
||||
|
||||
type IFileTree interface {
|
||||
@@ -171,6 +173,20 @@ func (self *FileTree) ToggleCollapsed(path string) {
|
||||
self.collapsedPaths.ToggleCollapsed(path)
|
||||
}
|
||||
|
||||
func (self *FileTree) CollapseAll() {
|
||||
dirPaths := lo.FilterMap(self.GetAllItems(), func(file *FileNode, index int) (string, bool) {
|
||||
return file.Path, !file.IsFile()
|
||||
})
|
||||
|
||||
for _, path := range dirPaths {
|
||||
self.collapsedPaths.Collapse(path)
|
||||
}
|
||||
}
|
||||
|
||||
func (self *FileTree) ExpandAll() {
|
||||
self.collapsedPaths.ExpandAll()
|
||||
}
|
||||
|
||||
func (self *FileTree) Tree() *FileNode {
|
||||
return NewFileNode(self.tree)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user