Repository navigation
Conversation
There was a problem hiding this comment.
Works as described. I ran the TUI from source on the base and on this branch with a long session title and hovered its tab. normal (and no setting) matches the base timing, slow waits about 1.2 s and scrolls at half speed, and off keeps the title truncated while the tab's hover state still works. The new "Title scrolling" entry appears in the Ctrl+P settings under Tabs. The marquee and config tests and the packages/tui type check pass.
Public API: adds the tabs.marquee key to cli.json (normal | slow | off, default normal). Backwards compatible: existing configs keep today's timing.
The code is sound. Resetting only the inner marquee when the setting changes is right, because the tab is still hovered. The one thing worth changing is the test file (see the inline comment).
| scope.dispose() | ||
| }) | ||
|
|
||
| test("scrolls wide-character titles that overflow", () => { |
There was a problem hiding this comment.
This test and leaves no timers running after disposal (line 190) only check behaviour that already existed: wide-title overflow comes from marqueeOverflows, and cleanup on disposal from the existing onCleanup. Neither depends on the new setting. Could you drop them so the new tests stay focused on what this PR adds (slow timing, off, and the reset when the setting changes)?
There was a problem hiding this comment.
Dropped both. Wide-title overflow comes from marqueeOverflows and the disposal cleanup from the existing onCleanup, so neither covered the new setting. The added cases now cover the slow timing, off, and the reset when the preset changes; the pre-existing tests are unchanged apart from the new preset argument.
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
There was a problem hiding this comment.
The new commit removes the two tests I flagged, so the new tests now cover only what this PR adds. Nothing else changed, so my earlier check of the running TUI still applies, and the marquee and config tests pass (29).
Public API: adds the tabs.marquee key to cli.json (normal | slow | off, default normal). Backwards compatible.
No further concerns.
|
@jlongster this one has been waiting on a maintainer for a couple of days, so a pointer may help. It adds a
|
There was a problem hiding this comment.
This push changes no code: the contents and parent are the same as the commit I last reviewed, so my earlier result still holds. It also merges cleanly onto the current dev, which has since changed the TUI config file and the CLI config docs.
Public API: adds the tabs.marquee key to cli.json (normal | slow | off, default normal). Backwards compatible.
No further concerns.
|
@kitlangton — you wrote most of the tab-title marquee code (#41566, #42055, #42093, #42344), so this probably needs your call more than a review pass. It takes the hard-coded tab title speed out of
|
A location graph is cached for its whole life and resolved its project once. Opening a folder before `git init` therefore pinned the markerless project identity, so the location kept reporting it (wrong project for session lists and the environment snapshot). Drop such a graph once a VCS marker appears and let the next borrow rebuild it.
fix(core): rebuild a location after its directory becomes a git repo

Issue for this PR
#58054
Type of change
What does this PR do?
Implements the preset interface proposed by @Dante-dan in #58054.
Makes the session tab title marquee configurable through
cli.json:{ "tabs": { "marquee": "slow" } }normal(default)slowoffBoth the horizontal strip and the vertical rail pass the resolved preset into the existing
createMarquee/createTabMarqueehelpers, so the current one-pass-and-reset motion is unchanged andanimationsstill only controls the fade. The preset is read reactively, so a config reload cancels a pending or running scroll and resets the offset before the new preset applies.Also adds a "Title scrolling" entry to the Ctrl+P settings dialog, the
tabs.marqueeschema plus default resolution, and the CLI config docs.How did you verify your code works?
bun testinpackages/tuifor the marquee, config and tab rail tests: 29 pass.normal,slow,off, and changing the preset mid-scroll.packages/tuisuite only reports failures that also reproduce on a clean checkout ofdev.bun turbo typecheckpasses.Screenshots / recordings
No visual change unless
tabs.marqueeis set.Checklist
Added by the opencode bot (AI-generated).
Fixes #58054
Related: #45112, #54927
Public API: adds the
tabs.marqueecli.json setting (normal|slow|off, defaultnormal; backwards compatible)