mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
4.2 KiB
151 lines
4.2 KiB
<!doctype html> |
|
|
|
<title>CodeMirror: MscGen mode</title> |
|
<meta charset="utf-8"/> |
|
<link rel=stylesheet href="../../doc/docs.css"> |
|
|
|
<link rel="stylesheet" href="../../lib/codemirror.css"> |
|
<script src="../../lib/codemirror.js"></script> |
|
<script src="mscgen.js"></script> |
|
<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> |
|
<div id=nav> |
|
<a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> |
|
<ul> |
|
<li><a href="../../index.html">Home</a> |
|
<li><a href="../../doc/manual.html">Manual</a> |
|
<li><a href="https://github.com/codemirror/codemirror">Code</a> |
|
</ul> |
|
<ul> |
|
<li><a href="../index.html">Language modes</a> |
|
<li><a class=active href="#">MscGen</a> |
|
</ul> |
|
</div> |
|
|
|
<article> |
|
<h2>MscGen mode</h2> |
|
|
|
<div><textarea id="mscgen-code"> |
|
# Sample mscgen program |
|
# See http://www.mcternan.me.uk/mscgen or |
|
# https://sverweij.github.io/mscgen_js for more samples |
|
msc { |
|
# options |
|
hscale="1.2"; |
|
|
|
# entities/ lifelines |
|
a [label="Entity A"], |
|
b [label="Entity B", linecolor="red", arclinecolor="red", textbgcolor="pink"], |
|
c [label="Entity C"]; |
|
|
|
# arcs/ messages |
|
a => c [label="doSomething(args)"]; |
|
b => c [label="doSomething(args)"]; |
|
c >> * [label="everyone asked me", arcskip="1"]; |
|
c =>> c [label="doing something"]; |
|
c -x * [label="report back", arcskip="1"]; |
|
|||; |
|
--- [label="shows's over, however ..."]; |
|
b => a [label="did you see c doing something?"]; |
|
a -> b [label="nope"]; |
|
b :> a [label="shall we ask again?"]; |
|
a => b [label="naah"]; |
|
...; |
|
} |
|
</textarea></div> |
|
|
|
<h2>Xù mode</h2> |
|
|
|
<div><textarea id="xu-code"> |
|
# Xù - expansions to MscGen to support inline expressions |
|
# https://github.com/sverweij/mscgen_js/blob/master/wikum/xu.md |
|
# More samples: https://sverweij.github.io/mscgen_js |
|
msc { |
|
hscale="0.8", |
|
width="700"; |
|
|
|
a, |
|
b [label="change store"], |
|
c, |
|
d [label="necro queue"], |
|
e [label="natalis queue"], |
|
f; |
|
|
|
a =>> b [label="get change list()"]; |
|
a alt f [label="changes found"] { /* alt is a xu specific keyword*/ |
|
b >> a [label="list of changes"]; |
|
a =>> c [label="cull old stuff (list of changes)"]; |
|
b loop e [label="for each change"] { // loop is xu specific as well... |
|
/* |
|
* Interesting stuff happens. |
|
*/ |
|
c =>> b [label="get change()"]; |
|
b >> c [label="change"]; |
|
c alt e [label="change too old"] { |
|
c =>> d [label="queue(change)"]; |
|
--- [label="change newer than latest run"]; |
|
c =>> e [label="queue(change)"]; |
|
--- [label="all other cases"]; |
|
||| [label="leave well alone"]; |
|
}; |
|
}; |
|
|
|
c >> a [label="done |
|
processing"]; |
|
|
|
/* shucks! nothing found ...*/ |
|
--- [label="nothing found"]; |
|
b >> a [label="nothing"]; |
|
a note a [label="silent exit"]; |
|
}; |
|
} |
|
</textarea></div> |
|
|
|
<h2>MsGenny mode</h2> |
|
<div><textarea id="msgenny-code"> |
|
# MsGenny - simplified version of MscGen / Xù |
|
# https://github.com/sverweij/mscgen_js/blob/master/wikum/msgenny.md |
|
# More samples: https://sverweij.github.io/mscgen_js |
|
a -> b : a -> b (signal); |
|
a => b : a => b (method); |
|
b >> a : b >> a (return value); |
|
a =>> b : a =>> b (callback); |
|
a -x b : a -x b (lost); |
|
a :> b : a :> b (emphasis); |
|
a .. b : a .. b (dotted); |
|
a -- b : "a -- b straight line"; |
|
a note a : a note a\n(note), |
|
b box b : b box b\n(action); |
|
a rbox a : a rbox a\n(reference), |
|
b abox b : b abox b\n(state/ condition); |
|
||| : ||| (empty row); |
|
... : ... (omitted row); |
|
--- : --- (comment); |
|
</textarea></div> |
|
|
|
<p> |
|
Simple mode for highlighting MscGen and two derived sequence |
|
chart languages. |
|
</p> |
|
|
|
<script> |
|
var mscgenEditor = CodeMirror.fromTextArea(document.getElementById("mscgen-code"), { |
|
lineNumbers: true, |
|
mode: "text/x-mscgen", |
|
}); |
|
var xuEditor = CodeMirror.fromTextArea(document.getElementById("xu-code"), { |
|
lineNumbers: true, |
|
mode: "text/x-xu", |
|
}); |
|
var msgennyEditor = CodeMirror.fromTextArea(document.getElementById("msgenny-code"), { |
|
lineNumbers: true, |
|
mode: "text/x-msgenny", |
|
}); |
|
</script> |
|
|
|
<p><strong>MIME types defined:</strong> |
|
<code>text/x-mscgen</code> |
|
<code>text/x-xu</code> |
|
<code>text/x-msgenny</code> |
|
</p> |
|
|
|
</article>
|
|
|