/
githubmirror
/
lazygit
Обзор
Документация
Войти
/
githubmirror
/
lazygit
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/integration/components/assertion_helper.go
48 строк
1 KB
Stefan Haller
Auto-scroll when dragging to create range selection in staging view
31 июл 2026, 09:26
31 июл 2026, 09:26
b682fb7
Код
Авторство
О чём код?
package components import ( "time" integrationTypes "github.com/jesseduffield/lazygit/pkg/integration/types" ) const eventuallyTimeout = 2 * time.Second type assertionHelper struct { gui integrationTypes.GuiDriver } func (self *assertionHelper) matchString(matcher *TextMatcher, context string, getValue func() string) { self.assertWithRetries(func() (bool, string) { value := getValue() return matcher.context(context).test(value) }) } // We no longer assert with retries now that lazygit tells us when it's no longer // busy. But I'm keeping the function in case we want to re-introduce it later. func (self *assertionHelper) assertWithRetries(test func() (bool, string)) { ok, message := test() if !ok { self.fail(message) } } func (self *assertionHelper) assertEventually(test func() (bool, string)) { deadline := time.Now().Add(eventuallyTimeout) for { ok, message := test() if ok { return } if time.Now().After(deadline) { self.fail(message) return } time.Sleep(10 * time.Millisecond) } } func (self *assertionHelper) fail(message string) { self.gui.Fail(message) }