mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-11 11:42:12 +02:00
For die-hard fuzzy-searching fans it's probably in the way, so taking it out makes fuzzy filtering work better. For substring filtering it always retains the sort order anyway.
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package context
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
|
"github.com/jesseduffield/lazygit/pkg/gui/presentation"
|
|
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
|
)
|
|
|
|
type WorktreesContext struct {
|
|
*FilteredListViewModel[*models.Worktree]
|
|
*ListContextTrait
|
|
}
|
|
|
|
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}
|
|
},
|
|
)
|
|
|
|
getDisplayStrings := func(_ int, _ int) [][]string {
|
|
return presentation.GetWorktreeDisplayStrings(
|
|
c.Tr,
|
|
viewModel.GetFilteredList(),
|
|
)
|
|
}
|
|
|
|
return &WorktreesContext{
|
|
FilteredListViewModel: viewModel,
|
|
ListContextTrait: &ListContextTrait{
|
|
Context: NewSimpleContext(NewBaseContext(NewBaseContextOpts{
|
|
View: c.Views().Worktrees,
|
|
WindowName: "files",
|
|
Key: WORKTREES_CONTEXT_KEY,
|
|
Kind: types.SIDE_CONTEXT,
|
|
Focusable: true,
|
|
})),
|
|
ListRenderer: ListRenderer{
|
|
list: viewModel,
|
|
getDisplayStrings: getDisplayStrings,
|
|
},
|
|
c: c,
|
|
},
|
|
}
|
|
}
|