mirror of
https://github.com/charmbracelet/gum
synced 2026-03-14 21:55:45 +01:00
feat: update bubbles, enable mousewheel on pager
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
parent
876ffd29aa
commit
0fca68e8fe
4 changed files with 19 additions and 18 deletions
|
|
@ -309,7 +309,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
}
|
||||
m.viewport.SetWidth(msg.Width)
|
||||
if m.reverse {
|
||||
m.viewport.YOffset = clamp(0, len(m.matches), len(m.matches)-m.viewport.Height())
|
||||
m.viewport.SetYOffset(clamp(0, len(m.matches), len(m.matches)-m.viewport.Height()))
|
||||
}
|
||||
case tea.KeyMsg:
|
||||
km := m.keymap
|
||||
|
|
@ -371,7 +371,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
// in the reverse layout.
|
||||
var yOffsetFromBottom int
|
||||
if m.reverse {
|
||||
yOffsetFromBottom = max(0, len(m.matches)-m.viewport.YOffset)
|
||||
yOffsetFromBottom = max(0, len(m.matches)-m.viewport.YOffset())
|
||||
}
|
||||
|
||||
// A character was entered, this likely means that the text input has
|
||||
|
|
@ -401,7 +401,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
// it remains at a constant position relative to the cursor.
|
||||
if m.reverse {
|
||||
maxYOffset := max(0, len(m.matches)-m.viewport.Height())
|
||||
m.viewport.YOffset = clamp(0, maxYOffset, len(m.matches)-yOffsetFromBottom)
|
||||
m.viewport.SetYOffset(clamp(0, maxYOffset, len(m.matches)-yOffsetFromBottom))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -432,18 +432,18 @@ func (m *model) CursorUp() {
|
|||
}
|
||||
if m.reverse { //nolint:nestif
|
||||
m.cursor = (m.cursor + 1) % len(m.matches)
|
||||
if len(m.matches)-m.cursor <= m.viewport.YOffset {
|
||||
m.viewport.LineUp(1)
|
||||
if len(m.matches)-m.cursor <= m.viewport.YOffset() {
|
||||
m.viewport.ScrollUp(1)
|
||||
}
|
||||
if len(m.matches)-m.cursor > m.viewport.Height()+m.viewport.YOffset {
|
||||
if len(m.matches)-m.cursor > m.viewport.Height()+m.viewport.YOffset() {
|
||||
m.viewport.SetYOffset(len(m.matches) - m.viewport.Height())
|
||||
}
|
||||
} else {
|
||||
m.cursor = (m.cursor - 1 + len(m.matches)) % len(m.matches)
|
||||
if m.cursor < m.viewport.YOffset {
|
||||
m.viewport.LineUp(1)
|
||||
if m.cursor < m.viewport.YOffset() {
|
||||
m.viewport.ScrollUp(1)
|
||||
}
|
||||
if m.cursor >= m.viewport.YOffset+m.viewport.Height() {
|
||||
if m.cursor >= m.viewport.YOffset()+m.viewport.Height() {
|
||||
m.viewport.SetYOffset(len(m.matches) - m.viewport.Height())
|
||||
}
|
||||
}
|
||||
|
|
@ -455,18 +455,18 @@ func (m *model) CursorDown() {
|
|||
}
|
||||
if m.reverse { //nolint:nestif
|
||||
m.cursor = (m.cursor - 1 + len(m.matches)) % len(m.matches)
|
||||
if len(m.matches)-m.cursor > m.viewport.Height()+m.viewport.YOffset {
|
||||
m.viewport.LineDown(1)
|
||||
if len(m.matches)-m.cursor > m.viewport.Height()+m.viewport.YOffset() {
|
||||
m.viewport.ScrollDown(1)
|
||||
}
|
||||
if len(m.matches)-m.cursor <= m.viewport.YOffset {
|
||||
if len(m.matches)-m.cursor <= m.viewport.YOffset() {
|
||||
m.viewport.GotoTop()
|
||||
}
|
||||
} else {
|
||||
m.cursor = (m.cursor + 1) % len(m.matches)
|
||||
if m.cursor >= m.viewport.YOffset+m.viewport.Height() {
|
||||
m.viewport.LineDown(1)
|
||||
if m.cursor >= m.viewport.YOffset()+m.viewport.Height() {
|
||||
m.viewport.ScrollDown(1)
|
||||
}
|
||||
if m.cursor < m.viewport.YOffset {
|
||||
if m.cursor < m.viewport.YOffset() {
|
||||
m.viewport.GotoTop()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
go.mod
2
go.mod
|
|
@ -9,7 +9,7 @@ require (
|
|||
github.com/alecthomas/kong v1.9.0
|
||||
github.com/alecthomas/mango-kong v0.1.0
|
||||
github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1
|
||||
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta1
|
||||
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.1.0.20250328000255-bf331300c52e
|
||||
github.com/charmbracelet/glamour/v2 v2.0.0-20250327175542-c0a9b8dab672
|
||||
github.com/charmbracelet/lipgloss/v2 v2.0.0-beta1
|
||||
github.com/charmbracelet/log/v2 v2.0.0-20250226163916-c379e29ff706
|
||||
|
|
|
|||
4
go.sum
4
go.sum
|
|
@ -22,8 +22,8 @@ github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuP
|
|||
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
|
||||
github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1 h1:swACzss0FjnyPz1enfX56GKkLiuKg5FlyVmOLIlU2kE=
|
||||
github.com/charmbracelet/bubbles/v2 v2.0.0-beta.1/go.mod h1:6HamsBKWqEC/FVHuQMHgQL+knPyvHH55HwJDHl/adMw=
|
||||
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta1 h1:yaxFt97mvofGY7bYZn8U/aSVoamXGE3O4AEvWhshUDI=
|
||||
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta1/go.mod h1:qbcZLI5z8R49v9xBdU5V5Dh5D2uccx8wSwBqxQyErqc=
|
||||
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.1.0.20250328000255-bf331300c52e h1:0kRhGpsFiFVPOx75o8pYUBaCjDrrcGrvtLYh6kKaeRs=
|
||||
github.com/charmbracelet/bubbletea/v2 v2.0.0-beta.1.0.20250328000255-bf331300c52e/go.mod h1:hYsjyXwOT3RiI2CI4WQYPUg4vg2O1TNTpk8TQTavCPI=
|
||||
github.com/charmbracelet/colorprofile v0.3.0 h1:KtLh9uuu1RCt+Hml4s6Hz+kB1PfV3wi++1h5ia65yKQ=
|
||||
github.com/charmbracelet/colorprofile v0.3.0/go.mod h1:oHJ340RS2nmG1zRGPmhJKJ/jf4FPNNk0P39/wBPA1G0=
|
||||
github.com/charmbracelet/glamour/v2 v2.0.0-20250327175542-c0a9b8dab672 h1:DF8za137pUh5LAXAdXISh0bhS6zU0mHl+cLxyivZjuI=
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ func (o Options) Run() error {
|
|||
m,
|
||||
tea.WithAltScreen(),
|
||||
tea.WithReportFocus(),
|
||||
tea.WithMouseAllMotion(),
|
||||
tea.WithContext(ctx),
|
||||
).Run()
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue