1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-15 01:34:26 +02:00

allow chaining matchers

This commit is contained in:
Jesse Duffield
2022-12-26 17:15:33 +11:00
parent c841ba8237
commit 96310288ee
13 changed files with 132 additions and 67 deletions

View File

@ -177,8 +177,9 @@ func (self *Input) NavigateToListItem(matcher *matcher) {
self.assert.assertWithRetries(func() (bool, string) {
matchIndex = -1
var matches []string
lines := view.ViewBufferLines()
// first we look for a duplicate on the current screen. We won't bother looking beyond that though.
for i, line := range view.ViewBufferLines() {
for i, line := range lines {
ok, _ := matcher.test(line)
if ok {
matches = append(matches, line)
@ -186,9 +187,9 @@ func (self *Input) NavigateToListItem(matcher *matcher) {
}
}
if len(matches) > 1 {
return false, fmt.Sprintf("Found %d matches for `%s`, expected only a single match. Lines:\n%s", len(matches), matcher.name, strings.Join(matches, "\n"))
return false, fmt.Sprintf("Found %d matches for `%s`, expected only a single match. Matching lines:\n%s", len(matches), matcher.name(), strings.Join(matches, "\n"))
} else if len(matches) == 0 {
return false, fmt.Sprintf("Could not find item matching: %s", matcher.name)
return false, fmt.Sprintf("Could not find item matching: %s. Lines:\n%s", matcher.name(), strings.Join(lines, "\n"))
} else {
return true, ""
}