@@ -185,7 +185,7 @@ else other condition — new section with condition
185185end — closes the innermost fragment
186186```
187187
188- ** All fragment types** : ` alt ` , ` loop ` , ` opt ` , ` par ` , ` par2 ` , ` break ` , ` critical ` , ` group ` .
188+ ** All fragment types** : ` alt ` , ` loop ` , ` opt ` , ` par ` , ` par2 ` , ` break ` , ` critical ` , ` group ` , ` partition ` .
189189
190190** Nesting** : Uses a ` fragmentStack ` array. Opening a fragment pushes; ` end ` pops and adds the fragment to the current context (which may be another fragment's section, enabling nesting).
191191
@@ -688,23 +688,28 @@ Each element type consumes vertical space:
688688| Feature | Parser | Model | Emitter | Notes |
689689| ---| ---| ---| ---| ---|
690690| Autonumber | ✅ | ✅ | ❌ | Need to prefix labels with computed numbers |
691+ | Autonumber resume | ✅ | ✅ | ❌ | Parsed and tested in comprehensive.puml |
691692| Return messages | ✅ (partial) | ✅ | ❌ (just advances Y) | Need activation stack to resolve source/target |
692693| Multicast | ✅ | ✅ (stored) | ❌ | ` msg.multicast[] ` populated but not emitted as extra arrows |
693694| Parallel ` & ` | ✅ | ✅ (flag) | ❌ | ` msg.isParallel ` set but no Y-sharing logic |
694695| Title | ✅ | ✅ | ❌ | ` diagram.title ` stored but not rendered |
695696| Participant stereotypes | ✅ | ✅ | ❌ | ` p.stereotype ` stored but not rendered |
697+ | Participant colors | ✅ | ✅ | ❌ | ` p.color ` stored but not rendered |
698+ | Participant ordering | ✅ | ✅ | ❌ | ` p.order ` stored but not rendered |
696699| Arrow ` bold ` / ` hidden ` | ✅ (parsed) | ✅ | ❌ | ` ArrowBody.BOLD ` /` HIDDEN ` not mapped to styles |
697700| Arrow part (top/bottom) | ✅ | ✅ | ❌ | ` ArrowPart.TOP_PART ` /` BOTTOM_PART ` not visually distinct |
698701| Exo arrow direction | ✅ | ✅ | ⚠️ (partial) | Direction logic for ` [<- ` and ` ->] ` variants may be wrong — needs visual testing |
702+ | Autoactivate | ✅ | ✅ | ❌ | ` autoactivate on/off ` parsed but not used in emitter |
703+ | Newpage | ✅ | ✅ | ❌ | Parsed but not emitted (single-page output only) |
704+ | Hide/show footbox | ✅ | ✅ | ❌ | ` hide footbox ` parsed but footer boxes always omitted |
705+ | Fragment colors | ✅ | ✅ | ❌ | ` alt #LightPink ` parsed but color not applied in emitter |
706+ | Partition | ✅ | ✅ | ❌ | Same as ` group ` in model, tested in comprehensive.puml |
699707
700708### Deferred Features (Tier 3 — not parsed)
701709
702710- Angle specifications on arrows
703- - Partial arrows (top/bottom half)
704711- Link anchors
705- - ` autoactivate `
706- - ` newpage `
707- - Complex autonumber formats with ` resume ` /` inc `
712+ - Complex autonumber formats with ` inc `
708713- ` !include ` / preprocessor directives
709714- ` skinparam ` (style customization)
710715- ` header ` / ` footer ` / ` caption `
@@ -752,37 +757,51 @@ Each element type consumes vertical space:
752757- Diagram type detection
753758- No-wrap mode (wrapInDocument=false, wrapInGroup=false)
754759
755- ### Test Gaps
760+ ### Test Gaps (unit tests in test.js)
756761
757- - No tests for exo arrows parsing
758- - No tests for multicast parsing
759- - No tests for ` hnote ` /` rnote ` style parsing
760- - No tests for note across
761- - No tests for note on arrow
762- - No tests for ` create ` (standalone or inline ` ** ` )
763- - No tests for color modifiers on arrows (` -[#red]> ` )
764- - No tests for participant ordering
765- - No tests for combined activation specs (` ++-- ` , ` --++ ` )
766- - No tests for ` autonumber stop ` /` resume `
767- - No tests for ref multi-line
768- - No tests that verify emitter output geometry/positions
769- - No tests that verify z-order in output
762+ - No unit tests for exo arrows parsing
763+ - No unit tests for multicast parsing
764+ - No unit tests for ` hnote ` /` rnote ` style parsing
765+ - No unit tests for note across
766+ - No unit tests for note on arrow
767+ - No unit tests for ` create ` (standalone or inline ` ** ` )
768+ - No unit tests for color modifiers on arrows (` -[#red]> ` )
769+ - No unit tests for participant ordering
770+ - No unit tests for combined activation specs (` ++-- ` , ` --++ ` )
771+ - No unit tests for ` autonumber stop ` /` resume `
772+ - No unit tests for ref multi-line
773+ - No unit tests that verify emitter output geometry/positions
774+ - No unit tests that verify z-order in output
770775
771- ### Visual Test (generate-comprehensive-test.js)
776+ Note: Most of the above are covered in ` comprehensive.puml ` for visual testing but lack programmatic assertions in ` test.js ` .
777+
778+ ### Visual Test (comprehensive.puml)
772779
773780The comprehensive test ` .puml ` exercises every feature in one diagram:
774781- All 8 participant types + alias + box grouping
782+ - Participant modifiers: ` order ` , stereotype (` <<service>> ` ), color (` #LightGreen ` )
775783- Arrow types: ` -> ` , ` --> ` , ` ->> ` , ` -->> ` , ` <- ` , ` <-- ` , ` <-> ` , ` ->x ` , ` o-> ` , ` o->o ` , ` x-> `
784+ - Half-arrows: ` -\ ` (top), ` -/ ` (bottom)
785+ - Arrow inline styles: ` [#blue] ` , ` [#red] ` , ` [dashed] ` , ` [dotted] ` , ` [hidden] `
786+ - Multi-line message labels (` \n ` )
776787- Self message
788+ - Multicast messages (` Alice -> Bob & Controller & DB ` )
789+ - Parallel messages (` & Alice -> Controller ` )
777790- Dividers between sections
778- - Explicit activate/deactivate
779- - Inline ` ++ ` , ` -- ` , ` ++-- `
780- - Create + destroy lifecycle
791+ - Explicit activate/deactivate (including colored: ` activate Bob #salmon ` )
792+ - Inline ` ++ ` , ` -- ` , ` ++-- ` , ` --++ ` , ` ++ #gold ` (with color)
793+ - Inline create ` ** ` and destroy ` !! `
794+ - Create + destroy lifecycle (explicit ` create ` /` destroy ` keywords)
781795- Return keyword
782- - All fragment types: alt/else, loop, opt, par, break, critical, group, nested
783- - Notes: right, left, over, over-two, multi-line, across, hnote, rnote, on-arrow
784- - Delay, HSpace, Reference
785- - Autonumber (start/stop)
796+ - ` autoactivate on/off `
797+ - All fragment types: alt/else, alt/else/also, loop, opt, par (with else branches), break, critical, group, partition, nested
798+ - Colored fragments: ` alt #LightPink ... else #LightGreen `
799+ - Notes: right, left, over, over-two, multi-line, across, hnote, rnote, on-arrow (right and left)
800+ - Exogenous (boundary) messages: ` [-> ` , ` ->] ` , ` [<- ` , ` <-] ` , ` ]-> ` , dotted variants
801+ - Delay (with and without label), HSpace, Reference
802+ - Autonumber: start/stop, start+increment (` autonumber 10 5 ` ), resume
803+ - ` newpage ` (creates second page)
804+ - ` hide footbox `
786805- Messages to every participant type
787806- Colored arrow
788807- Box grouping with color
0 commit comments