Repository navigation
Collapse the unrelated methods when focusing on a state error, listed on hover - #171
Open
CatarinaGamboa wants to merge 2 commits into
Open
CatarinaGamboa wants to merge 2 commits into
CatarinaGamboa wants to merge 2 commits into
Conversation
This was referenced Oct 27, 2026
…k the ways to fix it
Focus mode dimmed the methods unrelated to a state error but kept their
text, so the layout did not move. On a large machine like DatagramSocket
the dimmed label stacks still took the space, and the state the error is
about was below the fold.
Focus mode now collapses the dimmed methods of each label into a count
named in its tooltip ("+9 more", "2 methods"), merges the constructors
of each state, and lays the diagram out again. A tall focused diagram is
shrunk to fit the panel, but never below 60%. Show all is unchanged.
Only the failed method and the ways to fix the error stay bright: a
shortest path along the diagram's transitions from each state that
rejects the call to a state that accepts it, drawn dashed in the colour
of the expected states. When no transition leads there, the constructors
of the expected states are the way, as the verifier's hint says.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CatarinaGamboa
force-pushed
the
feat/focus-collapse
branch
from
October 27, 2026 12:33
cdfeb0c to
eca3f3e
Compare
CatarinaGamboa
added a commit
that referenced
this pull request
Oct 27, 2026
The shortest way along the diagram ignored the transitions' conditions and the code, and fell back to "create a new object" for a dead-end state. Only the failed method stays bright now; the verifier's hints are the ways to fix. Hovering "+N more" or "N methods" lists the methods, with their conditions, next to the label, and a click keeps the list until the next click, a pan, or a zoom. The diagram is not laid out again, so the list shows at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CatarinaGamboa
added a commit
that referenced
this pull request
Oct 27, 2026
CatarinaGamboa
force-pushed
the
feat/focus-collapse
branch
from
October 27, 2026 20:51
9231f80 to
a92a0c9
Compare
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.
Part of #170.
Why
Focus mode dimmed the methods unrelated to a state error but kept their text, so the layout did not move (#158). On a large machine the dimmed label stacks still took the space. In the UDP chat client the state the error is about,
closed, was below the fold.What
In focus mode:
receive++9 more, or2 methods. Overloads count once. A single dimmed method keeps its name and conditions.4 constructors.Show all is unchanged.
An earlier version of this PR also drew a dashed "way to an expected state": a shortest path along the diagram's transitions. It was dropped. The path ignores the transitions' conditions and the code, and for a state that no call leaves (
closed) it could only suggest creating a new object. The ways to fix now come from the verifier's hints only (#172).Error categories (liquid-java/liquidjava#418) are not used to choose what to show. #170 explains why.
Screenshots
Real verifier output (0.0.36) in headless VS Code.
UDP chat client (
E_OSS_A1_22):receiveafter anifthat may close the socket. In the screenshots, the threefrom = "closed(this) && connected(old(this))"preconditions are removed from the DatagramSocket spec. With them, verifier 0.0.36 sends no state context or hints for this error, and the view can only say "Invalid method call at line 28". That is a verifier issue, separate from this PR.On hover:
+12 morenext tobound, and2 methodsnext totilingExplicitwith their conditions.ImageWriteParam:
setTilingfromstartTiling.Show all (unchanged)
The collapsed "Ways to fix" section in the screenshots comes from the stacked PR.
Tests
npm run test:unit: 118 passed. New tests cover collapsing, the list on hover, pinning it with a click and closing it on a click, pan or zoom, opening it upward, merging constructors and the entry transitions from Draw entry transitions on the state machine #169, the fit to the panel, and Show all being unchanged.tsc -p tsconfig.test.jsonandnpm run lint: clean.npm test(VS Code): 9 + 1 passing, and servermvn test: 35 passing, both run on the stacked branch, which includes this one.Rebased on #169. In focus mode, entry transitions are dimmed and merged per state, the same way constructors are.
🤖 Generated with Claude Code