mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-11 12:25:47 +02:00
Add new filter to only show tracked files in Files panel
This allows to hide all non-tracked files on large repos
This commit is contained in:
parent
b0a766cc95
commit
fdeaf9cea0
4 changed files with 25 additions and 0 deletions
|
@ -695,6 +695,13 @@ func (self *FilesController) handleStatusFilterPressed() error {
|
|||
},
|
||||
Key: 'u',
|
||||
},
|
||||
{
|
||||
Label: self.c.Tr.FilterTrackedFiles,
|
||||
OnPress: func() error {
|
||||
return self.setStatusFiltering(filetree.DisplayTracked)
|
||||
},
|
||||
Key: 't',
|
||||
},
|
||||
{
|
||||
Label: self.c.Tr.ResetFilter,
|
||||
OnPress: func() error {
|
||||
|
|
|
@ -15,6 +15,7 @@ const (
|
|||
DisplayAll FileTreeDisplayFilter = iota
|
||||
DisplayStaged
|
||||
DisplayUnstaged
|
||||
DisplayTracked
|
||||
// this shows files with merge conflicts
|
||||
DisplayConflicted
|
||||
)
|
||||
|
@ -82,6 +83,8 @@ func (self *FileTree) getFilesForDisplay() []*models.File {
|
|||
return self.FilterFiles(func(file *models.File) bool { return file.HasStagedChanges })
|
||||
case DisplayUnstaged:
|
||||
return self.FilterFiles(func(file *models.File) bool { return file.HasUnstagedChanges })
|
||||
case DisplayTracked:
|
||||
return self.FilterFiles(func(file *models.File) bool { return file.Tracked })
|
||||
case DisplayConflicted:
|
||||
return self.FilterFiles(func(file *models.File) bool { return file.HasMergeConflicts })
|
||||
default:
|
||||
|
|
|
@ -40,6 +40,19 @@ func TestFilterAction(t *testing.T) {
|
|||
{Name: "file1", ShortStatus: "M ", HasStagedChanges: true},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "filter files that are tracked",
|
||||
filter: DisplayTracked,
|
||||
files: []*models.File{
|
||||
{Name: "dir2/dir2/file4", ShortStatus: "M ", Tracked: true},
|
||||
{Name: "dir2/file5", ShortStatus: "M ", Tracked: false},
|
||||
{Name: "file1", ShortStatus: "M ", Tracked: true},
|
||||
},
|
||||
expected: []*models.File{
|
||||
{Name: "dir2/dir2/file4", ShortStatus: "M ", Tracked: true},
|
||||
{Name: "file1", ShortStatus: "M ", Tracked: true},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "filter all files",
|
||||
filter: DisplayAll,
|
||||
|
|
|
@ -87,6 +87,7 @@ type TranslationSet struct {
|
|||
AllFilesDiffCopiedToast string
|
||||
FilterStagedFiles string
|
||||
FilterUnstagedFiles string
|
||||
FilterTrackedFiles string
|
||||
ResetFilter string
|
||||
MergeConflictsTitle string
|
||||
Checkout string
|
||||
|
@ -1075,6 +1076,7 @@ func EnglishTranslationSet() *TranslationSet {
|
|||
AllFilesDiffCopiedToast: "All files diff copied to clipboard",
|
||||
FilterStagedFiles: "Show only staged files",
|
||||
FilterUnstagedFiles: "Show only unstaged files",
|
||||
FilterTrackedFiles: "Show only tracked files",
|
||||
ResetFilter: "Reset filter",
|
||||
NoChangedFiles: "No changed files",
|
||||
SoftReset: "Soft reset",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue