Repository navigation
Read a templated dropdown's selection as the box shows it, and name the object selector's items (#1288) - #1300
Merged
Merged
Conversation
… view model's type (#1288) A closed dropdown's peer names its selection, and gives its value, by the item's ToString, which for a view model shown through a template is its type name. A selection or value that is only a type name is now read from the presenter of the box's selection item. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…generics as the box shows them, and guard against session scratch paths (#1288 review) The committed test still wrote debug output to this machine's session scratch folder, which does not exist on CI. Removed, and the tree-hygiene guard now refuses that folder and the local worktree root, with a selftest probe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1288.
On the Properties window's object selector,
inspect_elementgaveselectionItemsandvalueas["HexIDE.VisualDesigner.ComponentInstanceViewModel"]. That is the selected item'sToString(), which the dropdown's peer names it by, not what the dropdown shows.ComponentInstanceViewModel.ToString()returns the control's name, asConflictedFileViewModeland others already do. So the object selector reads "Command1" closed and open, its rows are named in the dump, andselectby value finds them. Its template shows the name and the class, "Command1 CommandButton", which names no control.ToStringof their own: their type (generic arguments and all) or a record's members. When the selection or value is that text, it is read as the closed box shows it, from the visible text of the presenter of its selection box item. An item's own text is kept, whatever the template shows.Review
One adversarial reviewer, using headless probes, including the real
PropertiesToolViewloaded with parsedComponentInstanceViewModels. No live IDE was available to this session.selectby value failedToString() => Name; test on the real view covers inspect closed and open, the dump row name andselectby valueLanguageInfo,RegionInfoin six real dropdowns) slipped past the type-name checkSelectedNames, the Object Browser's lists) and unnamed multi-block rows have the same defectIsEffectivelyVisible; testThe reviewer confirmed that the presenter lookup finds the closed box's presenter, not an open row's, in the Simple theme the IDE uses.
SelectionBoxItemTemplateis respected, a null selection is safe, and the cost is negligible (about 15 ms per 1000 inspects).Every new condition was mutation-checked. Unit 3086 and integration 1434 pass, and so does the hygiene selftest (67 assertions).
🤖 Generated with Claude Code