Skip to content

refactor: replace awk menu strings with TSV + tk_menu_* API - #7

Merged
KakkoiDev merged 1 commit into
masterfrom
fm/d4-menus
Jul 31, 2026
Merged

KakkoiDev merged 1 commit into
masterfrom
fm/d4-menus

Conversation

@KakkoiDev

Copy link
Copy Markdown
Owner

Summary

Step D-4 of the tmux-toolkit plan. Replaces the six-layer hand-tuned quoting chain with the vendored menu.sh tk_menu_* API.

What changed

  • 4 awk scripts rewritten to emit TSV data only (no tmux menu syntax)
  • 6 other awk scripts already emitted data-only output: unchanged
  • worktree_manager.sh: All 6 menu screens now use tk_menu_reset/tk_menu_title/tk_menu_item/tk_menu_show
  • Deleted: eval "tmux display-menu -T '$title' $options" and the six-layer quoting chain
  • generate_nav_options replaced by _add_nav_items (side-effect on TK_MENU_ARGS)
  • Test helper tmux stub updated to scan past -L flags from tk_tmux
  • 16 test files updated for new TSV + tk_menu_* test surface
  • 4 new round-trip quoting tests: spaces, apostrophes, forward slashes in branch names

Testing

make test # all non-E2E tests pass

Step D-4 of the toolkit plan. Replaces the six-layer hand-tuned
quoting chain with the vendored menu.sh tk_menu_* API.

- Rewrite 4 data awk scripts to emit TSV instead of tmux menu syntax
  (worktree_data, branch_data, removable_data, stale_data)
- Other 6 awk scripts already emitted data-only output (counts, sort)
- Delete eval "tmux display-menu -T '$title' $options"
- All 6 menu screens now use tk_menu_reset/title/item/show
- generate_nav_options replaced by _add_nav_items (side-effect on TK_MENU_ARGS)
- Update test helper tmux stub to scan past -L flags from tk_tmux
- Update 16 test files for new TSV + tk_menu_* test surface
- Add round-trip quoting tests for spaces, apostrophes, forward slashes
- All 215 non-E2E tests green
@KakkoiDev
KakkoiDev merged commit eb7b4b6 into master Jul 31, 2026
3 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant