Allow filtering worktrees by branch name in Worktrees pane (#5980)

Closes #5945.
This commit is contained in:
Stefan Haller 2026-08-29 17:25:30 +02:00 committed by GitHub
commit b7ffa93dc6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 38 additions and 2 deletions

View file

@ -16,8 +16,8 @@ var _ types.IListContext = (*WorktreesContext)(nil)
func NewWorktreesContext(c *ContextCommon) *WorktreesContext {
viewModel := NewFilteredListViewModel(
func() []*models.Worktree { return c.Model().Worktrees },
func(Worktree *models.Worktree) []string {
return []string{Worktree.Name}
func(worktree *models.Worktree) []string {
return []string{worktree.Name, worktree.Branch}
},
)

View file

@ -0,0 +1,35 @@
package filter_and_search
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var FilterWorktrees = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Filtering worktrees by branch name",
ExtraCmdArgs: []string{},
Skip: false,
SetupConfig: func(config *config.AppConfig) {},
SetupRepo: func(shell *Shell) {
shell.EmptyCommit("initial commit")
shell.NewBranch("branch-aaa")
shell.NewBranch("branch-xxx")
shell.Checkout("master")
shell.AddWorktreeCheckout("branch-aaa", "../worktree-xxx")
shell.AddWorktreeCheckout("branch-xxx", "../worktree-1")
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Worktrees().
Focus().
Lines(
Contains("(main worktree)").IsSelected(),
Contains("worktree-1 branch-xxx"),
Contains("worktree-xxx branch-aaa"),
).
FilterOrSearch("xxx").
Lines(
Contains("worktree-1 branch-xxx"),
Contains("worktree-xxx branch-aaa"),
)
},
})

View file

@ -270,6 +270,7 @@ var tests = []*components.IntegrationTest{
filter_and_search.FilterRemotes,
filter_and_search.FilterSearchHistory,
filter_and_search.FilterUpdatesWhenModelChanges,
filter_and_search.FilterWorktrees,
filter_and_search.NestedFilter,
filter_and_search.NestedFilterTransient,
filter_and_search.NewSearch,