Context
lassoElements uses findTrailsContourInBox: it only selects strokes whose contour is fully inside the rect. A stroke that crosses the cut line (part above, part below) is not selected, so it stays put while the rest moves.
Current behavior
Strokes straddling the cut line are left behind. Fine when cutting in blank space between lines; surprising if a stroke crosses the line.
Goal
Decide and implement the desired handling for crossing strokes. Options:
- Document + accept (status quo): cut only in gaps.
- Warn: detect crossing strokes near the line and hint the user to pick a clearer gap.
- Include: also move strokes that cross the line (requires the v2 per-element shift, not pure lasso).
Approach
- Detection: read elements near
cutY (getElements / getLastElement) and test bounding boxes against the line.
- Option 3 ties into the v2 auto-move work.
Acceptance criteria
References
.claude/skills/supernote-plugin-dev/references/make-space.md §3
references/pen-emr.md Pattern 14 (lasso contour requirement)
Context
lassoElementsusesfindTrailsContourInBox: it only selects strokes whose contour is fully inside the rect. A stroke that crosses the cut line (part above, part below) is not selected, so it stays put while the rest moves.Current behavior
Strokes straddling the cut line are left behind. Fine when cutting in blank space between lines; surprising if a stroke crosses the line.
Goal
Decide and implement the desired handling for crossing strokes. Options:
Approach
cutY(getElements/getLastElement) and test bounding boxes against the line.Acceptance criteria
References
.claude/skills/supernote-plugin-dev/references/make-space.md§3references/pen-emr.mdPattern 14 (lasso contour requirement)