charmbracelet/bubbletea
### [`v0.23.0`](https://togithub.com/charmbracelet/bubbletea/releases/tag/v0.23.0)
[Compare Source](https://togithub.com/charmbracelet/bubbletea/compare/v0.22.1...v0.23.0)
If you are closely following Bubble Tea's development, you may have already noticed that we have been really busy fixing a lot of issues and merged more than just a couple of feature requests in recent weeks. This `v0.23.0` release is in fact our biggest update since the initial release of the package: in the last 3 months over 100 commits have reached us by more than 30 individual contributors! Thank you everyone! 💕
Here's a quick overview of what has changed:
### Custom Outputs
Don't want to render your beautiful TUI to `stdout`? A buffer or an alternative file descriptor like `stderr` seems more
appropriate? We got you covered now:
#### Render to stderr
```go
p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
```
#### Render to a Buffer
```go
var buf bytes.Buffer
p := tea.NewProgram(model, tea.WithOutput(&buf))
```
### Run Like the Wind
We've introduced the aptly named method `Program.Run` which replaces and deprecates the existing `Program.Start` and
`Program.StartReturningModel` methods. This unifies and clarifies the blocking behavior of the Bubble Tea program execution.
The old methods will continue to work for now, but please update your programs accordingly:
```go
p := tea.NewProgram(model, tea.WithOutput(os.Stderr))
model, err := p.Run() // instead of p.Start or p.StartReturningModel
...
```
### Bug Fix Galore!
The initialization and tear-down methods of `tea.Program` have been revised and some long-standing problems have been resolved. We couldn't list every single fix in the release notes, so please check out the full changelog below!
##### 🤗 Thanks
We would like to particularly thank [@knz](http://github.com/knz) who is the sole author of more than a dozen PRs since the last release. Outstanding work!
***
#### Changelog
##### New
- Render to custom outputs, io.Writers and buffers (`tea.WithOutput`)
- Support for new keys: Ctrl(+Alt) - Page, Home, End, and Insert keys
- Signal handler is optional with program option `tea.WithoutSignalHandler`
- `tea.ClearScreen`, `tea.ShowCursor` commands
- Exported `BatchMsg`
##### Fixed!
- Race conditions in console renderer
- Issues restoring terminal state on shutdown
- Kill not resulting in an error returned by `Program.Run`
- Repaint behavior
- Skip over unrecognized CSI sequences
- Function keys on urxvt
- Function keys on Linux console
- Rendering issues with overflowing output buffers
- Ensure final render on clean shutdown
- Cursor visibility on altscreen state switch
- Deadlock in `Program.Send` on shutdown
##### Deprecated
- `Program.Start`, `Program.StartReturningModel`: please use `Program.Run`
***
Thoughts? Questions? We love hearing from you. Feel free to reach out on [Twitter](https://twitter.com/charmcli), [The Fediverse](https://mastodon.social/@charmcli), or [Discord](https://charm.sh/chat).
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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v0.22.1
->v0.23.0
Release Notes
charmbracelet/bubbletea
### [`v0.23.0`](https://togithub.com/charmbracelet/bubbletea/releases/tag/v0.23.0) [Compare Source](https://togithub.com/charmbracelet/bubbletea/compare/v0.22.1...v0.23.0) If you are closely following Bubble Tea's development, you may have already noticed that we have been really busy fixing a lot of issues and merged more than just a couple of feature requests in recent weeks. This `v0.23.0` release is in fact our biggest update since the initial release of the package: in the last 3 months over 100 commits have reached us by more than 30 individual contributors! Thank you everyone! 💕 Here's a quick overview of what has changed: ### Custom Outputs Don't want to render your beautiful TUI to `stdout`? A buffer or an alternative file descriptor like `stderr` seems more appropriate? We got you covered now: #### Render to stderr ```go p := tea.NewProgram(model, tea.WithOutput(os.Stderr)) ``` #### Render to a Buffer ```go var buf bytes.Buffer p := tea.NewProgram(model, tea.WithOutput(&buf)) ``` ### Run Like the Wind We've introduced the aptly named method `Program.Run` which replaces and deprecates the existing `Program.Start` and `Program.StartReturningModel` methods. This unifies and clarifies the blocking behavior of the Bubble Tea program execution. The old methods will continue to work for now, but please update your programs accordingly: ```go p := tea.NewProgram(model, tea.WithOutput(os.Stderr)) model, err := p.Run() // instead of p.Start or p.StartReturningModel ... ``` ### Bug Fix Galore! The initialization and tear-down methods of `tea.Program` have been revised and some long-standing problems have been resolved. We couldn't list every single fix in the release notes, so please check out the full changelog below! ##### 🤗 Thanks We would like to particularly thank [@knz](http://github.com/knz) who is the sole author of more than a dozen PRs since the last release. Outstanding work! *** #### Changelog ##### New - Render to custom outputs, io.Writers and buffers (`tea.WithOutput`) - Support for new keys: Ctrl(+Alt) - Page, Home, End, and Insert keys - Signal handler is optional with program option `tea.WithoutSignalHandler` - `tea.ClearScreen`, `tea.ShowCursor` commands - Exported `BatchMsg` ##### Fixed! - Race conditions in console renderer - Issues restoring terminal state on shutdown - Kill not resulting in an error returned by `Program.Run` - Repaint behavior - Skip over unrecognized CSI sequences - Function keys on urxvt - Function keys on Linux console - Rendering issues with overflowing output buffers - Ensure final render on clean shutdown - Cursor visibility on altscreen state switch - Deadlock in `Program.Send` on shutdown ##### Deprecated - `Program.Start`, `Program.StartReturningModel`: please use `Program.Run` *** Thoughts? Questions? We love hearing from you. Feel free to reach out on [Twitter](https://twitter.com/charmcli), [The Fediverse](https://mastodon.social/@charmcli), or [Discord](https://charm.sh/chat).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.
This PR has been generated by Mend Renovate. View repository job log here.