mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-21 12:16:54 +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.
46 lines
1.2 KiB
Go
46 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 SubmodulesContext struct {
|
|
*FilteredListViewModel[*models.SubmoduleConfig]
|
|
*ListContextTrait
|
|
}
|
|
|
|
var _ types.IListContext = (*SubmodulesContext)(nil)
|
|
|
|
func NewSubmodulesContext(c *ContextCommon) *SubmodulesContext {
|
|
viewModel := NewFilteredListViewModel(
|
|
func() []*models.SubmoduleConfig { return c.Model().Submodules },
|
|
func(submodule *models.SubmoduleConfig) []string {
|
|
return []string{submodule.FullName()}
|
|
},
|
|
)
|
|
|
|
getDisplayStrings := func(_ int, _ int) [][]string {
|
|
return presentation.GetSubmoduleListDisplayStrings(viewModel.GetItems())
|
|
}
|
|
|
|
return &SubmodulesContext{
|
|
FilteredListViewModel: viewModel,
|
|
ListContextTrait: &ListContextTrait{
|
|
Context: NewSimpleContext(NewBaseContext(NewBaseContextOpts{
|
|
View: c.Views().Submodules,
|
|
WindowName: "files",
|
|
Key: SUBMODULES_CONTEXT_KEY,
|
|
Kind: types.SIDE_CONTEXT,
|
|
Focusable: true,
|
|
})),
|
|
ListRenderer: ListRenderer{
|
|
list: viewModel,
|
|
getDisplayStrings: getDisplayStrings,
|
|
},
|
|
c: c,
|
|
},
|
|
}
|
|
}
|