From 52bfcc7ff403bad822fb4cc9fc1a834ba9b90fd8 Mon Sep 17 00:00:00 2001 From: Joeri Exelmans Date: Thu, 9 Oct 2025 16:46:41 +0200 Subject: [PATCH] nicer connectedness feedback --- src/VisualEditor/VisualEditor.tsx | 18 ++++++++++-------- src/VisualEditor/parameters.ts | 2 +- src/VisualEditor/runtime_types.ts | 7 +++++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/VisualEditor/VisualEditor.tsx b/src/VisualEditor/VisualEditor.tsx index 09debf1..77776d6 100644 --- a/src/VisualEditor/VisualEditor.tsx +++ b/src/VisualEditor/VisualEditor.tsx @@ -445,14 +445,14 @@ export function VisualEditor({ast, setAST, rt, setRT, errors, setErrors}: Visual arrow2SideMap.set(arrow.uid, [startSide, endSide]); } if (startSide) { - const arrowConns = side2ArrowMap.get(startSide.uid) || new Set(); + const arrowConns = side2ArrowMap.get(startSide.uid + '/' + startSide.part) || new Set(); arrowConns.add(["start", arrow.uid]); - side2ArrowMap.set(startSide.uid, arrowConns); + side2ArrowMap.set(startSide.uid + '/' + startSide.part, arrowConns); } if (endSide) { - const arrowConns = side2ArrowMap.get(endSide.uid) || new Set(); + const arrowConns = side2ArrowMap.get(endSide.uid + '/' + endSide.part) || new Set(); arrowConns.add(["end", arrow.uid]); - side2ArrowMap.set(endSide.uid, arrowConns); + side2ArrowMap.set(endSide.uid + '/' + endSide.part, arrowConns); } } for (const text of state.texts) { @@ -495,10 +495,12 @@ export function VisualEditor({ast, setAST, rt, setRT, errors, setErrors}: Visual for (const textUid of texts) { textsToHighlight[textUid] = true; } - const arrows = side2ArrowMap.get(selected.uid) || []; - if (arrows) { - for (const [arrowPart, arrowUid] of arrows) { - arrowsToHighlight[arrowUid] = true; + for (const part of selected.parts) { + const arrows = side2ArrowMap.get(selected.uid + '/' + part) || []; + if (arrows) { + for (const [arrowPart, arrowUid] of arrows) { + arrowsToHighlight[arrowUid] = true; + } } } const arrow2 = text2ArrowMap.get(selected.uid); diff --git a/src/VisualEditor/parameters.ts b/src/VisualEditor/parameters.ts index 2015ccd..e369fc0 100644 --- a/src/VisualEditor/parameters.ts +++ b/src/VisualEditor/parameters.ts @@ -1,6 +1,6 @@ export const ARROW_SNAP_THRESHOLD = 20; -export const TEXT_SNAP_THRESHOLD = 30; +export const TEXT_SNAP_THRESHOLD = 40; export const ROUNTANGLE_RADIUS = 20; export const MIN_ROUNTANGLE_SIZE = { x: ROUNTANGLE_RADIUS*2, y: ROUNTANGLE_RADIUS*2 }; diff --git a/src/VisualEditor/runtime_types.ts b/src/VisualEditor/runtime_types.ts index 0dc9e19..d665de6 100644 --- a/src/VisualEditor/runtime_types.ts +++ b/src/VisualEditor/runtime_types.ts @@ -16,6 +16,13 @@ export type RT_Statechart = { // history: // TODO } & RaisedEvents; +export type BigStep = { + from: RT_Statechart; + to: RT_Statechart; + inputEvent: string; + outputEvents: string[]; +} + export type RaisedEvents = { internalEvents: string[]; outputEvents: string[];