/
githubmirror
/
lazygit
Обзор
Документация
Войти
/
githubmirror
/
lazygit
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/gui/controllers/vertical_scroll_controller.go
73 строки
2 KB
Stefan Haller
Read lines based on scroll position instead of a fixed per-notch delta
09 июл 2026, 10:32
09 июл 2026, 10:32
cbf220c
Код
Авторство
О чём код?
package controllers import ( "github.com/jesseduffield/lazygit/pkg/gocui" "github.com/jesseduffield/lazygit/pkg/gui/types" ) // given we have no fields here, arguably we shouldn't even need this factory // struct, but we're maintaining consistency with the other files. type VerticalScrollControllerFactory struct { c *ControllerCommon } func NewVerticalScrollControllerFactory(c *ControllerCommon) *VerticalScrollControllerFactory { return &VerticalScrollControllerFactory{ c: c, } } func (self *VerticalScrollControllerFactory) Create(context types.Context) types.IController { return &VerticalScrollController{ baseController: baseController{}, c: self.c, context: context, } } type VerticalScrollController struct { baseController c *ControllerCommon context types.Context } func (self *VerticalScrollController) Context() types.Context { return self.context } func (self *VerticalScrollController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding { return []*types.Binding{} } func (self *VerticalScrollController) GetMouseKeybindings(opts types.KeybindingsOpts) []*gocui.ViewMouseBinding { return []*gocui.ViewMouseBinding{ { ViewName: self.context.GetViewName(), Key: gocui.MouseWheelUp, Handler: func(gocui.ViewMouseBindingOpts) error { return self.HandleScrollUp() }, }, { ViewName: self.context.GetViewName(), Key: gocui.MouseWheelDown, Handler: func(gocui.ViewMouseBindingOpts) error { return self.HandleScrollDown() }, }, } } func (self *VerticalScrollController) HandleScrollUp() error { self.context.GetViewTrait().ScrollUp(self.c.UserConfig().Gui.ScrollHeight) return nil } func (self *VerticalScrollController) HandleScrollDown() error { self.context.GetViewTrait().ScrollDown(self.c.UserConfig().Gui.ScrollHeight) self.c.ReadLinesToFillView(self.context.GetView()) return nil }