Skip to content

layout: the picker lists a view under the place showing it - #470

Merged
foxnne merged 1 commit into
mainfrom
layout/picker-shown
Oct 16, 2026
Merged

foxnne merged 1 commit into
mainfrom
layout/picker-shown

Conversation

@foxnne

@foxnne foxnne commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Follow-up to #466, from its review.

What changes

  • A view reads under the place showing it. layout: the region picker groups views by the place they are made for #466 sectioned cards by keywords alone, so Files dragged onto the Panel was highlighted in the Panel's picker but listed under "Sidebar" (and the Sidebar's picker still claimed it). A card now sits under the place holding it (Layout.matchingIn), and falls back to its keywords only when no place does. Places resolved by name (a split's leaf, a float) are each their own section instead of being folded into a keyword group, so a view put in one reads under its name.
  • The edited place always leads. A split's new leaf accepts no view's keywords, so its picker opened on other places' headers alone. Its own header now comes first, with "Nothing here yet." (or "No matching views here." under a filter).
  • Each card's section is computed once per frame rather than once per section.

SDK impact

  • None

Verified

  • macOS: unit tests for the section rule, including a held view and a slot leaf; the picker integration test now assigns Files to the Panel and checks both pickers list it in the Panel's row beside Output (on main the Sidebar picker puts Files in a section of its own, so the row check would fail). All gates pass locally (fmt, build, test, test-integration 53/53 steps, check-web, test-sdk-version, check-tests-reached). Not looked at on screen.
  • Windows:
  • Linux:
  • Web:

Follow-ups

None planned.

🤖 Generated with Claude Code

Follow-up to #466, from its review. Sections went by keywords alone, so a
view the user had moved (Files dragged onto the Panel) was lit in the Panel's
picker but listed under "Sidebar". A card now sits under the place holding
it, and falls back to its keywords only when no place does. Places resolved
by name (a split's leaf, a float) are each their own section rather than
folded into a keyword group, so a view put in one reads under its name.

The place being edited always leads with its own header. A split's new leaf
accepts no view's keywords, so its picker used to open on other places'
headers alone; it now says "Nothing here yet." under its name.

Each card's section is worked out once per frame, not once per section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@foxnne
foxnne marked this pull request as ready for review October 16, 2026 21:33
@foxnne
foxnne merged commit 83304c2 into main Oct 16, 2026
11 checks passed
@foxnne
foxnne deleted the layout/picker-shown branch October 16, 2026 21:34
@foxnne foxnne mentioned this pull request Oct 16, 2026
2 of 5 tasks
foxnne added a commit that referenced this pull request Oct 16, 2026
Follow-up to #470, from its review.

## What changes

- The place being edited, when empty, draws its header and "Nothing here
yet." inside a box anchored `picker.empty`, so a test or a demo tape can
find it.
- The picker integration test checks it: once Files and Output both sit
in the Panel, the Sidebar's picker leads with `picker.empty` above the
Panel's cards, and the Panel's picker has none.
- A comment said the sections were "sorted"; they are computed once.

## SDK impact

- [x] None

## Verified

- [x] macOS: the picker integration test passes, and fails without the
anchor; all gates pass locally (fmt, build, test, test-integration 53/53
steps, check-web, test-sdk-version).
- [ ] Windows:
- [ ] Linux:
- [ ] Web:

## Follow-ups

None planned.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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