Skip to content

A plain layout after Free Ports puts every port back on its declared row - #77

Merged
endrix merged 2 commits into
mainfrom
fix/declared-rows-after-free-ports
Oct 16, 2026
Merged

endrix merged 2 commits into
mainfrom
fix/declared-rows-after-free-ports

Conversation

@endrix

@endrix endrix commented Oct 16, 2026

Copy link
Copy Markdown
Owner

Follow-up to #76. The Free Ports pass permuted the ports' rows in the session's model, and a later Layout Diagram left them there: ELK may not move ports and the engine ignores its port geometry, so the declared order came back only on a reload.

The pass now records a moved port's declared row on the port (wf:declaredRowY), and any layout that does not ask for the pass restores every such row before laying out. Layout Diagram, Compact Layout, Untangled Layout and a drag therefore lay the ports out as the source declares them, whatever ran before.

The test runs Free Ports and then a plain layout on the speculation flow fixture and holds every port at the row the load gave it, with every edge routed. 326 tests pass, tsc --noEmit is clean.

Endri Bezati added 2 commits October 16, 2026 13:47
SidecarProfileInput.sourceExtensions (['.sv', '.v']) reaches the platform's
declaration, the watcher's default globs, the openability probe and the raw
sidecar commands; new files take the first. sourceExtension stays honoured
and is all a Python product needs. Toolkit change T1 of ide/hdl-ide-plan.md.
The Free Ports pass permuted the ports' rows in the session's model, and a
later Layout Diagram left them there, since ELK may not move ports and the
engine ignores its port geometry: the declared order came back only on a
reload. The pass now records a moved port's declared row on the port, and
any layout that does not ask for the pass restores every such row before
laying out. The test runs Free Ports and then a plain layout on the
speculation flow and holds every port at its loaded row.
@endrix
endrix merged commit 6eb31b7 into main Oct 16, 2026
1 check passed
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