Skip to content

Ctrl+\ puts the current file beside the others, in a second editor group - #500

Merged
jamescrosswell merged 6 commits into
mainfrom
feat/editor-groups
Oct 11, 2026
Merged

jamescrosswell merged 6 commits into
mainfrom
feat/editor-groups

Conversation

@a-team-app

@a-team-app a-team-app Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Ctrl+\ (or mg, or View → Move to other group) moves the active tab into a second editor group on the right, so a test can sit beside the code it covers. Each group has its own tab strip and they split the width evenly. F6 (or fo) moves the keys to the other group, and so does a click. jg puts every tab back in one group. A group whose last tab leaves or closes goes away, and the other one takes the full width.

Closes #460

A file is open in one group at most: opening it from the Explorer, Ctrl+O, a Find result, Back/Forward or the Review tab focuses it where it already is. Commands on the active tab act on the focused group. Save all, quit, rename/move/delete, disk-change notices and Find/Replace in files cover both groups. The split, and which group had focus, come back when the folder is reopened.

Choices worth a look:

  • With no split, Focus other group and Join groups don't run, so the palette and leader don't offer them and the menu dims them. Move to other group runs whenever a tab is open, so mg on a lone tab can say Open another file to split with.
  • The left group keeps the Editor title on its border. The right group's border has no title.
  • F1 lists Ctrl+\ and F6 in the Editor, Diff and Tabs columns.
  • Opening a diff that's already open in the other group opens a second copy in the focused group. The Review tab is the exception: it finds the diff in either group. I left the rest alone because diffs are out of scope here.

🤖 Generated with Claude Code

a-team try tuicode 500

The editor area now holds two EditorGroups behind EditorGroups, which keeps
a file in at most one of them, closes a group once it empties, and re-raises
both groups' events. EditorPart.Group is the focused group, so every
active-tab command keeps working unchanged, while save all, quit, rename and
delete, disk watching, baselines, language servers and global find go
through Groups and cover both.

Ctrl+\ (mg) moves the active tab to the other group, F6 (fo) moves the keys
there, and jg joins the groups again. Focus follows a click into either
group, and the focused group gets the focus border. The second group, and
whether it was focused, persist in the workspace state.

Closes #460

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The help column now lists "Move to other group", and the editor-groups
tests compared CRLF content and unrooted paths on Windows.

Closes #460

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@a-team-app
a-team-app Bot marked this pull request as ready for review October 10, 2026 03:08
a-team-app Bot and others added 4 commits October 10, 2026 18:35
Usages jumps open in the focused group, and the Usages pane counts as sidebar for the borders.

Closes #460

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
On Windows CI the console answers TG's periodic size query with its own
size, which undid the 50-column resize after the Size step had seen it,
so On_a_terminal_too_narrow_for_both_floors_the_sidebar_stops_at_its_own
waited for a 15-column sidebar that never came and timed out.
HostSteps.PinScreenSize keeps the size for the rest of the test.

Closes #460

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Closes #460

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Forwards the new PinnedLineClicked through both editor groups.

Closes #460

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@a-team-app

a-team-app Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor Author

Windows CI at 449cb36 failed with two ViewedFilesHostTests hitting RunAsync timed out. They passed on Windows at f2ea711 on this branch, and the full suite passes locally, so I've re-run the job.

Heads-up: Windows RunAsync timed out has now hit three different host tests on this branch (SidebarDrag, then FocusHostTests, then these two), and none on main or other branches in the last 25 failed runs. If it keeps happening, the branch is likely making Windows host tests flaky (the new focusable editor frames or the per-iteration focus reconcile are the suspects), not just the runner being slow.

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.

Ctrl+\ puts the current file beside the others, in a second editor group

1 participant