MscGen mode
xxxxxxxxxx
1
# Sample mscgen program
2
# See http://www.mcternan.me.uk/mscgen or
3
# https://sverweij.github.io/mscgen_js for more samples
4
msc {
5
# options
6
hscale="1.2";
7
8
# entities/ lifelines
9
a [label="Entity A"],
10
b [label="Entity B", linecolor="red", arclinecolor="red", textbgcolor="pink"],
11
c [label="Entity C"];
12
13
# arcs/ messages
14
a => c [label="doSomething(args)"];
15
b => c [label="doSomething(args)"];
16
c >> * [label="everyone asked me", arcskip="1"];
17
c =>> c [label="doing something"];
18
c -x * [label="report back", arcskip="1"];
19
|||;
20
--- [label="shows's over, however ..."];
21
b => a [label="did you see c doing something?"];
22
a -> b [label="nope"];
23
b :> a [label="shall we ask again?"];
24
a => b [label="naah"];
25
...;
26
}
27
Xù mode
xxxxxxxxxx
1
# Xù - expansions to MscGen to support inline expressions
2
# https://github.com/sverweij/mscgen_js/blob/master/wikum/xu.md
3
# More samples: https://sverweij.github.io/mscgen_js
4
xu {
5
hscale="0.8",
6
width="700";
7
8
a,
9
b [label="change store"],
10
c,
11
d [label="necro queue"],
12
e [label="natalis queue"],
13
f;
14
15
a =>> b [label="get change list()"];
16
a alt f [label="changes found"] { /* alt is a xu specific keyword*/
17
b >> a [label="list of changes"];
18
a =>> c [label="cull old stuff (list of changes)"];
19
b loop e [label="for each change"] { // loop is xu specific as well...
20
/*
21
* Interesting stuff happens.
22
*/
23
c =>> b [label="get change()"];
24
b >> c [label="change"];
25
c alt e [label="change too old"] {
26
c =>> d [label="queue(change)"];
27
--- [label="change newer than latest run"];
28
c =>> e [label="queue(change)"];
29
--- [label="all other cases"];
30
||| [label="leave well alone"];
31
};
32
};
33
34
c >> a [label="done
35
processing"];
36
37
/* shucks! nothing found ...*/
38
--- [label="nothing found"];
39
b >> a [label="nothing"];
40
a note a [label="silent exit"];
41
};
42
}
43
MsGenny mode
xxxxxxxxxx
1
# MsGenny - simplified version of MscGen / Xù
2
# https://github.com/sverweij/mscgen_js/blob/master/wikum/msgenny.md
3
# More samples: https://sverweij.github.io/mscgen_js
4
a -> b : a -> b (signal);
5
a => b : a => b (method);
6
b >> a : b >> a (return value);
7
a =>> b : a =>> b (callback);
8
a -x b : a -x b (lost);
9
a :> b : a :> b (emphasis);
10
a .. b : a .. b (dotted);
11
a -- b : "a -- b straight line";
12
a note a : a note a\n(note),
13
b box b : b box b\n(action);
14
a rbox a : a rbox a\n(reference),
15
b abox b : b abox b\n(state/ condition);
16
||| : ||| (empty row);
17
... : ... (omitted row);
18
--- : --- (comment);
19
Simple mode for highlighting MscGen and two derived sequence chart languages.
MIME types defined:
text/x-mscgen
text/x-xu
text/x-msgenny