Skip to content

Name the Object Browser's list rows by their names (#1299) - #1302

Merged
imojenisys merged 2 commits into
mainfrom
fix/1299-list-row-names
Oct 21, 2026
Merged

imojenisys merged 2 commits into
mainfrom
fix/1299-list-row-names

Conversation

@imojenisys

Copy link
Copy Markdown
Contributor

Closes #1299.

The Object Browser's class, member and search lists named their rows by their view models' type. A row's peer names it by its item's ToString(), and these view models have none of their own. The dump drops a type name, so these rows had no name, select by value couldn't find them, and inspect_element named the selection "ListItem".

OBClassViewModel, OBMemberViewModel and OBSearchResultViewModel now name themselves by their names, as OBLibraryViewModel beside them already does.

Review

One adversarial reviewer, using headless probes and a survey of every ListBox and ComboBox in the IDE.

Finding Severity Outcome
The first version also named any unnamed row by the text it shows, but only in the dump; paths, Resolve and select match on the peer's name, so the dump showed a name no tool accepted Medium-high Dropped the fallback. No IDE list other than the Object Browser's has this shape. A fallback would have to change the matcher too, and it picked up placeholders, button captions and access-key markers
A selected row scrolled out of view reads Items[i].ToString() Medium Fixed for these lists by the ToStrings
Records and generics over framework types slip past the type-name check in a row's name (the Language/Region combos' open rows) Low-medium Pre-existing; dropdown selections were fixed in #1288; rows left
OBSearchResultViewModel could name itself with its location to tell same-named hits apart Low Kept to the name, which is what a caller selects by; duplicates get [#n] paths as before

The reviewer confirmed that nothing else uses these view models' ToString: logging, sorting and filtering read .Name. No test asserts a type name, and screen-reader names improve too.

Mutation-checked: removing OBClassViewModel.ToString fails the test. Integration 1447 passes.

🤖 Generated with Claude Code

imojenisys and others added 2 commits October 21, 2026 04:54
…the text they show (#1299)

The Object Browser's class, member and search lists named their rows by their
view models' type, which the dump drops: no name, no select by value, and a
selection read as "ListItem". The three view models now name themselves, and a
list row its peer gives no usable name is named by the text it shows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, so it named rows no tool accepts (#1299 review)

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.

List rows of view models with no ToString are named by their type, or not at all

1 participant