mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-30 03:23:08 +03: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:
@ -6,6 +6,7 @@ import (
|
||||
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/context/traits"
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||||
"github.com/samber/lo"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -69,6 +70,29 @@ func (self *CommitFileTreeViewModel) GetSelected() *CommitFileNode {
|
||||
return self.Get(self.GetSelectedLineIdx())
|
||||
}
|
||||
|
||||
func (self *CommitFileTreeViewModel) GetSelectedItemId() string {
|
||||
item := self.GetSelected()
|
||||
if item == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
return item.ID()
|
||||
}
|
||||
|
||||
func (self *CommitFileTreeViewModel) GetSelectedItems() ([]*CommitFileNode, int, int) {
|
||||
panic("Not implemented")
|
||||
}
|
||||
|
||||
func (self *CommitFileTreeViewModel) GetSelectedItemIds() ([]string, int, int) {
|
||||
selectedItems, startIdx, endIdx := self.GetSelectedItems()
|
||||
|
||||
ids := lo.Map(selectedItems, func(item *CommitFileNode, _ int) string {
|
||||
return item.ID()
|
||||
})
|
||||
|
||||
return ids, startIdx, endIdx
|
||||
}
|
||||
|
||||
func (self *CommitFileTreeViewModel) GetSelectedFile() *models.CommitFile {
|
||||
node := self.GetSelected()
|
||||
if node == nil {
|
||||
|
Reference in New Issue
Block a user