mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-11 16:16:28 -04:00
feat: show actual file count in files panel footer
In tree mode, the files panel footer shows "X of Y" where Y includes directory nodes. This can be confusing since it doesn't match the actual number of changed files (as shown by git status). Add a file count suffix to the footer so it reads e.g. "1 of 39 | 23 changes", making the true number of changed files visible at a glance while keeping the tree navigation counter intact. This is implemented via a generic footerExtra callback on ListContextTrait, so other contexts can add footer info in the future without modifying the shared setFooter logic.
This commit is contained in:
parent
4c2c0ce32d
commit
026b434c6f
|
|
@ -28,6 +28,9 @@ type ListContextTrait struct {
|
|||
// true if we're inside the OnSearchSelect call; in that case we don't want to update the search
|
||||
// result index.
|
||||
inOnSearchSelect bool
|
||||
|
||||
// Optional function to append extra info to the footer (e.g. file count in tree view)
|
||||
footerExtra func() string
|
||||
}
|
||||
|
||||
func (self *ListContextTrait) IsListContext() {}
|
||||
|
|
@ -81,7 +84,13 @@ func (self *ListContextTrait) refreshViewport() {
|
|||
}
|
||||
|
||||
func (self *ListContextTrait) setFooter() {
|
||||
self.GetViewTrait().SetFooter(formatListFooter(self.list.GetSelectedLineIdx(), self.list.Len()))
|
||||
footer := formatListFooter(self.list.GetSelectedLineIdx(), self.list.Len())
|
||||
if self.footerExtra != nil {
|
||||
if extra := self.footerExtra(); extra != "" {
|
||||
footer += " | " + extra
|
||||
}
|
||||
}
|
||||
self.GetViewTrait().SetFooter(footer)
|
||||
}
|
||||
|
||||
func formatListFooter(selectedLineIdx int, length int) string {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package context
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/filetree"
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/presentation"
|
||||
|
|
@ -50,6 +52,14 @@ func NewWorkingTreeContext(c *ContextCommon) *WorkingTreeContext {
|
|||
getDisplayStrings: getDisplayStrings,
|
||||
},
|
||||
c: c,
|
||||
footerExtra: func() string {
|
||||
fileCount := len(viewModel.GetAllFiles())
|
||||
label := "changes"
|
||||
if fileCount == 1 {
|
||||
label = "change"
|
||||
}
|
||||
return fmt.Sprintf("%d %s", fileCount, label)
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue