fix(deps): update module github.com/charmbracelet/bubbletea to v0.27.1
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| github.com/charmbracelet/bubbletea | v0.24.2 -> v0.27.1 |
Release Notes
charmbracelet/bubbletea (github.com/charmbracelet/bubbletea)
v0.27.1
This is a lil’ workaround for a hang that can occur when starting a program using Lip Gloss. For details see https://github.com/charmbracelet/bubbletea/pull/1107.
Changelog
Bug fixes
d6458e0: fix: force query the terminal bg before running any programs (@​aymanbagabas)
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.
v0.27.0
Suspending, environment hacking, and more
Hi! This release has three nice little features and some bug fixes. Let's take a look:
Suspending and resuming
At last, now you can programmatically suspend and resume programs with the tea.Suspend command and handle resumes with the tea.ResumeMsg message:
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
// Suspend with ctrl+z!
case tea.KeyMsg:
switch msg.String() {
case "ctrl+z":
m.suspended = true
return m, tea.Suspend
}
// Handle resumes
case tea.ResumeMsg:
m.suspended = false
return m, nil
}
// ...
}
There's also a tea.SuspendMsg that flows through Update on suspension.
Special thanks to @​knz for prototyping the original implementation of this.
Setting the environment
When Bubble Tea is behind Wish you may have needed to pass environment variables from the remote session to the Program. Now you can with the all new tea.WithEnvironment:
var sess ssh.Session // ssh.Session is a type from the github.com/charmbracelet/ssh package
pty, _, _ := sess.Pty()
environ := append(sess.Environ(), "TERM="+pty.Term)
p := tea.NewProgram(model, tea.WithEnvironment(environ)
Requesting the window dimensions
All the Bubble Tea pros know that you get a tea.WindowSizeMsg when the Program starts and when the window resizes. Now you can just query it on demand too with the tea.WindowSize command.
Changelog
New!
7d70838: feat: add a cmd to request window size (#​988) (@​aymanbagabas)ea13ffb: feat: allow to suspend bubbletea programs (#​1054) (@​caarlos0)cae9acd: feat: set the program environment variables (#​1063) (@​aymanbagabas)
Fixed
7c1bfc0: query window-size in a goroutine (#​1059) (@​aymanbagabas)4497aa9: reset cursor position on renderer exit (#​1058) (@​aymanbagabas)d6a19f0: wrapErrProgramKillederror (@​aymanbagabas)4a9620e: fix bugs in package-manager example (@​AkshayKalose)
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.
v0.26.6
Changelog
Bug fixes
60a57ea: fix: nil deref on release terminal (@​aymanbagabas)
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.
v0.26.5
Fix special keys input handling on Windows using the latest Windows Console Input driver.
Changelog
New Features
42a7dd8: feat(ci): use goreleaser for releases (#​1023) (@​aymanbagabas)
Bug fixes
a08802e: fix(windows): coninput not handling control sequences (#​1041) (@​Sculas)
Other work
2d65ed6: chore(examples): removed use of deprecated Copy (@​arianizadi)
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.
v0.26.4
Fix panics! Using program.SetWindowTitle and others may panic if they were called before the program starts.
Also note that program.SetWindowTitle is now deprecated. To set the window title use tea.SetWindowTitle command.
What's Changed
- chore(deps): bump github.com/charmbracelet/x/ansi from 0.1.1 to 0.1.2 by @​dependabot in https://github.com/charmbracelet/bubbletea/pull/1026
- chore(deps): bump github.com/charmbracelet/lipgloss from 0.10.0 to 0.11.0 in /examples by @​dependabot in https://github.com/charmbracelet/bubbletea/pull/1025
- fix: program renderer commands by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/1030
Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.26.3...v0.26.4
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
v0.26.3
This is a patch release that prevents tea.WindowSizeMsgs from being fired during altscreen changes on Windows. This was due to the fact that Windows emits a window-size-event on altscreen changes even if the size hand’t changed. Now, we cache the window-size and compare before sending the message to the Model.
What's Changed
- Prevent multiple window-size-events from firing on Windows by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/1021
- refactor: use x/term and x/ansi for renderer sequences by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/962
Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.26.2...v0.26.3
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
v0.26.2
This fixes a small regression that was introduced in v0.26.0 related to the first line on the first render not being displayed correctly. Thank you @​mistakenelf for pointing this out in https://github.com/charmbracelet/bubbletea/issues/1000!
What's Changed
- fix: stop and drain timers by @​caarlos0 in https://github.com/charmbracelet/bubbletea/pull/993
- chore(lint): minor lint-related improvements by @​meowgorithm in https://github.com/charmbracelet/bubbletea/pull/1007
- fix: renderer: reset the cursor on the first line by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/1008
- chore(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by @​dependabot in https://github.com/charmbracelet/bubbletea/pull/1003
- chore(deps): bump golangci/golangci-lint-action from 5 to 6 by @​dependabot in https://github.com/charmbracelet/bubbletea/pull/1005
- chore(deps): bump golang.org/x/term from 0.19.0 to 0.20.0 by @​dependabot in https://github.com/charmbracelet/bubbletea/pull/1002
Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.26.1...v0.26.2
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
v0.26.1
This is a quick one to fix a Windows shortcoming in the last release acutely identified by our pal @​jon4hz. Thank you!
What's Changed
- fix: support more shift and ctrl modifiers on windows by @​jon4hz in https://github.com/charmbracelet/bubbletea/pull/995
Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.26.0...v0.26.1
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
v0.26.0
Bracketed Paste, Windows Improvements, Mainframes, and more
What do tapioca balls, IBM mainframes, and the Microsoft Windows Console API have in common? Bubble Tea v0.26.0, that’s what. Let’s get to it.
⚡️ Windows Input Improvements
A few years ago @​erikgeiser, a penetration tester and ex-particle physicist, wrote this awesome library called coninput to majorly improve Bubble Tea input on Windows. @​aymanbagabas has implemented the library in Bubble Tea and input on Windows is roughly 1000 times better now. In the short term, this means that for Windows users inputting non-Latin characters (like Greek, Cyrillic, Korean, Chinese and so on) stuff will “just work.”
The bigger news, however, is that this paves the way for Windows parity with our forthcoming support for super high fidelity input via Kitty Keyboard and Fixterms.
🍳 Hot Windows Resize Events
Terminal emulators on Windows don’t support the SIGWINCH signal, which is sent when the terminal is resized. It’s been a huge bummer for a really long time. Thanks (again) to @​erikgeiser and @​aymanbagabas, we’re now able to reach deep into Windows’ underpinnings, detect window resizes, and send tea.WindowSizeMsgs accordingly! This is a glorious moment for Bubble Tea on Windows indeed.
đź« Bracketed Paste
While building a query editor for a CockroachDB client, @​knz noticed that Bubble Tea didn't support Bracketed Paste. Performance-wise, that sucks because it means pasting large bodies of text (like SQL queries) will normally be seen as a bunch of little successive keypresses. That’s where Bracketed Paste comes in. When enabled at the terminal-level Bracketed Paste lets you slam down a bunch of text with one big, fat input event.
Bubble Tea enables bracketed paste by default, however you can opt out of it with the WithoutBracketedPaste() program option:
p := tea.NewProgram(myCuteModel, tea.WithoutBracketedPaste())
You can also enable and disable it on demand with the EnableBracketedPaste() and DisableBracketedPaste() commands.
🌿 Multiline tea.Println
In case you forgot, tea.Println (and it’s brother tea.Printf) is a Cmd that lets you print unmanaged output above a Bubble Tea program, similar to what you see with package managers like apt-get. Thanks to @​Adjective-Object (who also implemented tea.Println in the first place) now you can send multi-line output, too. For a tea.Println refresher see the package manager example.
đź“€ Hello, z/OS
Don’t you think it’s about time we all ran Bubble Tea apps on our mainframes? Thanks to @​dustin-ward that dream is now a reality, so long as you have a z/OS mainframe. We're thrilled to announce that Bubble Tea is now fully supported on z/OS.
🌹 Bug fixes
Bugfixes are the unsung heroes that sometimes get buried below the feature listings. This release has them and they’re good ones; see the changelog below for details.
Changelog
New!
- bracketed paste by @​knz in https://github.com/charmbracelet/bubbletea/pull/397
- use windows console input buffer + resize events on windows by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/878
- multiline
tea.Println()messages by @​Adjective-Object in https://github.com/charmbracelet/bubbletea/pull/490 - z/OS support by @​dustin-ward in https://github.com/charmbracelet/bubbletea/pull/913
Changed
- use go 1.18; update bubbles by @​caarlos0 in https://github.com/charmbracelet/bubbletea/pull/916
Fixed
- fix deadlock condition on model init panic by @​eolso in https://github.com/charmbracelet/bubbletea/pull/926
- reduce console/term dependencies by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/897
- optimize batches with one item by @​systay in https://github.com/charmbracelet/bubbletea/pull/875
New Contributors
- @​kevgo made their first contribution in https://github.com/charmbracelet/bubbletea/pull/893
- @​canack made their first contribution in https://github.com/charmbracelet/bubbletea/pull/890
- @​Pheon-Dev made their first contribution in https://github.com/charmbracelet/bubbletea/pull/621
- @​rusinikita made their first contribution in https://github.com/charmbracelet/bubbletea/pull/835
- @​hedhyw made their first contribution in https://github.com/charmbracelet/bubbletea/pull/864
- @​mat2cc made their first contribution in https://github.com/charmbracelet/bubbletea/pull/871
- @​stefanlogue made their first contribution in https://github.com/charmbracelet/bubbletea/pull/855
- @​BigJk made their first contribution in https://github.com/charmbracelet/bubbletea/pull/885
- @​sharunkumar made their first contribution in https://github.com/charmbracelet/bubbletea/pull/839
- @​timmattison made their first contribution in https://github.com/charmbracelet/bubbletea/pull/908
- @​dustin-ward made their first contribution in https://github.com/charmbracelet/bubbletea/pull/913
- @​jaymorelli96 made their first contribution in https://github.com/charmbracelet/bubbletea/pull/802
- @​siddhantac made their first contribution in https://github.com/charmbracelet/bubbletea/pull/906
- @​taigrr made their first contribution in https://github.com/charmbracelet/bubbletea/pull/853
- @​systay made their first contribution in https://github.com/charmbracelet/bubbletea/pull/875
- @​gabe565 made their first contribution in https://github.com/charmbracelet/bubbletea/pull/728
- @​zMoooooritz made their first contribution in https://github.com/charmbracelet/bubbletea/pull/902
- @​j178 made their first contribution in https://github.com/charmbracelet/bubbletea/pull/709
- @​arisnacg made their first contribution in https://github.com/charmbracelet/bubbletea/pull/948
- @​braheezy made their first contribution in https://github.com/charmbracelet/bubbletea/pull/950
- @​dhth made their first contribution in https://github.com/charmbracelet/bubbletea/pull/949
- @​tearingItUp786 made their first contribution in https://github.com/charmbracelet/bubbletea/pull/944
- @​aschey made their first contribution in https://github.com/charmbracelet/bubbletea/pull/597
- @​petergloor made their first contribution in https://github.com/charmbracelet/bubbletea/pull/955
- @​kaifulee made their first contribution in https://github.com/charmbracelet/bubbletea/pull/957
- @​danenania made their first contribution in https://github.com/charmbracelet/bubbletea/pull/971
- @​cuibuwei made their first contribution in https://github.com/charmbracelet/bubbletea/pull/977
- @​agvxov made their first contribution in https://github.com/charmbracelet/bubbletea/pull/972
- @​eolso made their first contribution in https://github.com/charmbracelet/bubbletea/pull/926
Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.25.0...v0.25.1
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
v0.25.0
Major mouse improvements, better input parsing, and lots more!
We hope you’re ready for winter. Unless you’re in the southern hemisphere (like @​caarlos0) in which case, we hope you’re ready for summer. In either case, we hope you have a happy new year if the Julian calendar is something you’re into.
There are a bunch of good features in this release and a ton of input-related improvements. Read on for more!
Extended Mouse Mode
Bubble Tea now supports Extended Mouse Mode (aka SGR mode) which makes now mouse support in Bubble Tea way, way better.
Prior to this release Bubble Tea used the X10 mouse protocol. X10 was last released in 1986: a time when screen resolutions were smaller, memory limits were low, and a terminal sizes were tiny. For terminals and mice this meant that the mouse tracking stopped after the 127th horizontal cell. Well, thanks to the elite abilities of @​aymanbagabas Bubble Tea can now track mouse movements across the entire terminal window, no matter how enormous.
And that's not all: Bubble Tea now has higher fidelity access to mouse operations such as shift, ctrl, and alt modifiers, mouse button release events, and a big range of mouse button and mouse wheel events.
For details see the docs for the new and improved MouseEvent.
Setting the Window Title
@​aymanbagabas also wanted to be able to set the terminal window title with Bubble Tea, so he added the SetWindowTitle Cmd. Now setting the window title is as simple as:
func (m Model) Update(msg tea.Msg) (tea.Model. tea.Cmd) {
return m, tea.SetWindowTitle("oh my")
}
FPS Control
Have you ever thought “Bubble Tea is too fast and I just can’t handle it?” Or perhaps 60fps is too slow and you want to go full 120fps. Now, thanks to @​tomfeigin’s WithFPS ProgramOption you can:
// Let’s go with the classic soap opera frame rate
p := tea.NewProgram(model, tea.WithMaxFPS(45))
Better Input, Better Living
@​knz is just incredible. He took a look at Bubble Tea’s input parser and whipped it into shape with what felt like a flick of the wrist. Keyboard input is now more efficient than ever and very large amounts of input can be parsed with the greatest of ease. It's hard to overstate how impactful his contributions are—and there are more in the pipe.
Changelog
New!
- Extended Coordinates mouse reporting and additional button support by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/594
- Option to set max FPS by @​tomfeigin in https://github.com/charmbracelet/bubbletea/pull/578
SetWindowTitlecommand by @​aymanbagabas in https://github.com/charmbracelet/bubbletea/pull/611
Fixed
- Invert the key parsing control loop by @​knz in https://github.com/charmbracelet/bubbletea/pull/569
- Simplify the key input analysis code by @​knz in https://github.com/charmbracelet/bubbletea/pull/568
- Support very long buffered input in key parsing by @​knz in https://github.com/charmbracelet/bubbletea/pull/570
- Make
ReleaseTerminal/RestoreTerminalthread safe by @​caarlos0 in https://github.com/charmbracelet/bubbletea/pull/791
Full Changelog: https://github.com/charmbracelet/bubbletea/compare/v0.24.2...v0.25.0
New Contributors
- @​tomfeigin made their first contribution in https://github.com/charmbracelet/bubbletea/pull/578
- @​bloznelis made their first contribution in https://github.com/charmbracelet/bubbletea/pull/763
- @​grafviktor made their first contribution in https://github.com/charmbracelet/bubbletea/pull/770
- @​naglis made their first contribution in https://github.com/charmbracelet/bubbletea/pull/787
- @​grrlopes made their first contribution in https://github.com/charmbracelet/bubbletea/pull/804
- @​Juneezee made their first contribution in https://github.com/charmbracelet/bubbletea/pull/812
- @​ddworken made their first contribution in https://github.com/charmbracelet/bubbletea/pull/828
- @​wI2L made their first contribution in https://github.com/charmbracelet/bubbletea/pull/829
- @​guyfedwards made their first contribution in https://github.com/charmbracelet/bubbletea/pull/865
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.
Configuration
đź“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
ℹ Artifact update notice
File name: go.mod
In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):
- 6 additional dependencies were updated
Details:
| Package | Change |
|---|---|
github.com/charmbracelet/lipgloss |
v0.8.0 -> v0.13.0 |
golang.org/x/sync |
v0.3.0 -> v0.8.0 |
github.com/mattn/go-isatty |
v0.0.18 -> v0.0.20 |
github.com/muesli/ansi |
v0.0.0-20211018074035-2e021307bc4b -> v0.0.0-20230316100256-276c6243b2f6 |
github.com/rivo/uniseg |
v0.2.0 -> v0.4.7 |
golang.org/x/sys |
v0.7.0 -> v0.24.0 |
