feat(tui): Bubble Tea v2, shared keymap, mouse, focus and OSC 52 copy #80
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jwarykowski/shepherd!80
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/bubbletea-v2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Moves the TUI to Bubble Tea v2 and uses what it adds, plus a store fix found in a review.
Store:
Loaddoesn't parse (an unknown meta key, hand-written text) stay attached to their item and are written back, so a save no longer drops them. Lines above the first item are still dropped.saveConfigwrites atomically through the newstore.WriteFile, so a stow-symlinkedconfig.tomlstays a symlink.Bubble Tea v2 (bubbles, lipgloss and ntcharts v2 too):
shepherd · <board> · done/total(plus●when unsaved), tab progress bar (OSC 9;4), real terminal cursor in the text input and note editor.ycopies through OSC 52, so it works over SSH and in tmux (set-clipboard on); atotto is no longer imported.autosave = 0. Disk polling now runs in aCmd, and a read that lands after an edit is dropped.shift+enter/ctrl+enterfinish a note where the terminal tells them apart fromenter.mouse = trueor the settings screen): wheel scrolls, click selects a row or lane card, double-click opens detail. Off by default because it takes over text selection.TUI cleanup:
keymap.go: the list, global and detail handlers dispatch onkey.Bindings and the footer grids render from them. A test fails if two bindings share a key.update.gosplit intoupdate_boards.go,update_settings.goandupdate_detail.go.Verification: format, vet, test and lint pass. With mouse off, all ten TUI screens (each view, detail, help, settings, boards, global) and
stats --no-colorare identical to master in tmux. The cursor position and title were checked in tmux. Not checked by hand: real mouse input and the tab progress bar.Behaviour changes: