Skip to content

Sequence Diagram

Last updated:

Mermaid Studio provides full language support for Sequence diagrams inside IntelliJ IDEA and other JetBrains IDEs. Sequence diagrams show how processes interact with each other over time, and are essential for documenting API flows, system integrations, and protocol specifications.

Syntax highlighting integrates directly with IntelliJ’s color scheme system, so diagram colors always match your editor theme.

Sequence diagram syntax highlighting in Armada Dark theme

Mermaid Studio provides comprehensive support for sequence diagrams:

  • Syntax highlighting for participants and messages, with embedded-JSON highlighting inside properties and links blocks so the JSON keys and values stay readable.
  • Code completion for participant names and message syntax. Top-level-only keywords (title, accTitle, accDescr, autonumber, properties, details, link, links) are filtered out inside control-flow blocks (loop, alt, opt, par, critical, break, rect) where Mermaid wouldn’t accept them.
  • Live templates — 31 abbreviations covering block wrappers, notes, participants and actors (including typed-metadata @{type: ...} forms), messages (with a msg arrow-picker macro), and autonumber.
  • Documentation hover for element information
  • Rename refactoring to update participant names
  • Find usages to locate participant references
  • Code folding for every block keyword, including box and par_over.
  • Formatting to clean up diagram structure. Empty box / loop / alt / rect no longer accumulate a blank line on every reformat, and a titleless box or rect keeps its first content line on its own row.
  • Block-body isolation — a parse error inside one block body no longer cascades to its siblings or the rest of the file; each block reparses independently.
  • Inspections to catch common errors:
    • Trailing whitespace after a @{...} participant / actor attributes block when no as follows (with a one-click fix to strip the space).
    • Non-participant / non-actor statements inside a box (Mermaid only renders box content of those two kinds).
    • Participant declared inside control flow (now covers par_over too) — with a quick fix that moves the declaration to top level.
    • Decimal autonumber values (autonumber 1.1 0.1) are validated and trailing whitespace on the autonumber statement is flagged on Mermaid 11.15.0+.
  • Brace matching for block navigation. Pressing Enter inside inline properties / links JSON no longer triggers comma insertion or brace-pair expansion.
  • Color provider for customizing diagram colors

A set of 31 context-aware live templates scaffolds the block keywords, participant and actor declarations, notes, messages, and autonumber statements that sequence diagrams use day-to-day. Type a short abbreviation, accept it from the completion popup, and tab through the template variables.

Individual abbreviations can be toggled under Settings > Tools > Mermaid Studio > Live Templates in the Sequence Diagram group. See Live Templates for the cross-cutting mechanics (triggering, contextual visibility, configuration).

AbbreviationExpansion
blooploop ... end
baltalt ... else ... end
boptopt ... end
bparpar ... and ... end
bcritcritical ... option ... end
bbrkbreak ... end
bboxParticipant grouping box (box ... end)
brectBackground rectangle (rect rgb(...) ... end)
AbbreviationExpansion
nlNote left of participant
nrNote right of participant
noNote over participant

The prta and atra templates produce as-aliased declarations; cprta and catra produce the create variants. The prj and atj templates use the typed-metadata @{type: ...} form (Mermaid 11.13.0+); cprj and catj produce the create variants of those.

AbbreviationExpansion
prtaparticipant X as "Label"
atraactor X as "Label"
cprtacreate participant X as "Label"
catracreate actor X as "Label"
prjparticipant X@{type: ...} (11.13.0+)
atjactor X@{type: ...} (11.13.0+)
cprjcreate participant X@{type: ...}
catjcreate actor X@{type: ...}

msg is the generic form: it expands the arrow as a picker variable, so you choose the operator on insert. The other ten templates each hard-code one operator for when you already know the shape you want.

AbbreviationExpansion
msgMessage with arrow picker (A -> B: text)
msSolid line, no arrowhead (A -> B: text)
msfSolid line with arrowhead (A ->> B: text)
mdDotted line, no arrowhead (A --> B: text)
mdfDotted line with arrowhead (A -->> B: text)
mcSolid line with cross (A -x B: text)
mdcDotted line with cross (A --x B: text)
maAsync solid arrow (A -) B: text)
mdaAsync dotted arrow (A --) B: text)
mbBidirectional solid (A <<->> B: text)
mdbBidirectional dotted (A <<-->> B: text)
AbbreviationExpansion
autnsautonumber 10 10 (start + step)
sequenceDiagram
participant A as Alice
participant B as Bob
A->>B: Hello
SyntaxMeaning
->Solid line
-->Dashed line
->>Solid with arrowhead
-->>Dashed with arrowhead
-xSolid with cross
--xDashed with cross
<->>Bidirectional
-)Half-arrow (Mermaid 11.13.0+)
--)Dashed half-arrow (Mermaid 11.13.0+)
sequenceDiagram
Client->>+Server: Request
Server-->>-Client: Response
sequenceDiagram
Alice->>Bob: Hello
Note right of Bob: Bob thinks
Bob-->>Alice: Hi!

For full syntax details, see the Mermaid sequence diagram documentation.