1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-09-16 09:16:26 +02:00

Set groundwork for better disabled reasons with range select

Something dumb that we're currently doing is expecting list items
to define an ID method which returns a string. We use that when copying
items to clipboard with ctrl+o and when getting a ref name for diffing.

This commit gets us a little deeper into that hole by explicitly requiring
list items to implement that method so that we can easily use the new
helper functions in list_controller_trait.go.

In future we need to just remove the whole ID thing entirely but I'm too
lazy to do that right now.
This commit is contained in:
Jesse Duffield
2024-01-16 17:28:14 +11:00
parent a67ad44781
commit a5f3515ad8
43 changed files with 237 additions and 154 deletions

View File

@@ -242,6 +242,12 @@ type MenuItem struct {
Section *MenuSection
}
// Defining this for the sake of conforming to the HasID interface, which is used
// in list contexts.
func (self *MenuItem) ID() string {
return self.Label
}
type Model struct {
CommitFiles []*models.CommitFile
Files []*models.File

View File

@@ -136,6 +136,7 @@ type IListContext interface {
Context
GetSelectedItemId() string
GetSelectedItemIds() ([]string, int, int)
IsItemVisible(item HasUrn) bool
GetList() IList

View File

@@ -6,3 +6,8 @@ type Suggestion struct {
// label is what is actually displayed so it can e.g. contain color
Label string
}
// Conforming to the HasID interface, which is needed for list contexts
func (self *Suggestion) ID() string {
return self.Value
}