Panicking is a part of life…and a part of workin’ in Go. This release addresses two edge cases where a panic() could tank Bubble Tea and break your terminal:
Panics outside of Bubble Tea
If a panic occurs outside of Bubble Tea you can use Program.Kill to restore the terminal state before exiting:
If a panic occurs in a Cmd Bubble Tea will now automatically restore the terminal to its natural state before exiting.
type model struct{}
// This command will totally panic.
func pancikyCmd() tea.Msg {
panic("Oh no! Jk.")
}
func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
case tea.KeyMsg:
switch msg.String() {
case "enter":
// Panic time! But everything will be OK.
return m, pancikyCmd
}
}
return m, nil
}
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the version-update-breaking group with 2 updates: github.com/charmbracelet/bubbletea and github.com/charmbracelet/lipgloss.
Updates
github.com/charmbracelet/bubbletea
from 0.27.0 to 1.1.1Release notes
Sourced from github.com/charmbracelet/bubbletea's releases.
... (truncated)
Commits
6e71f52
fix: restore the terminal on kill0589921
fix: recover from panics within cmds7ca1b0b
docs(featured): clean up in the wild list (#1130)6d43c27
chore(deps): bump github.com/charmbracelet/bubbles in /examples (#1131)d5f1b71
docs(focus): add some GoDoc links and add note on focus supporte58efab
feat: support focus-blur events (#1122)a5437ac
feat(ci): use meta build workflow (#1123)c69bd97
fix: we don't initialize the terminal when using a nilRenderer (#1120)af7ec0e
chore(deps): bump github.com/charmbracelet/bubbles in /examples (#1104)105d88a
fix(ci): skip CI for examples/tutorials running go1.18Updates
github.com/charmbracelet/lipgloss
from 0.12.1 to 0.13.0Release notes
Sourced from github.com/charmbracelet/lipgloss's releases.
... (truncated)
Commits
bb3e339
docs(README): match tree example alignment with list examplesbc0de5c
docs(README): make tree example match output185fde3
docs(README): update tree imagescf0a7c6
docs: fix tree screenshotfeb42a9
feat: move tree to root (#342)0618c73
feat(test): add test forJoinHorizontal
(#346)ed7f56e
docs: fixCompleteColor
example (#345)8a0e640
fix: remove unnecessary if87dd58d
chore: fix little typo in comment in go.modDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show