かなり久しぶりに PlantUML を触ってみました。 いつの間にかマクロの使い方について仕様変更があったっぽいのでメモ。
仕様変更
こんな記述が。
!define
と!definelong
は使用しないでください。 代わりに!function
、!procedure
もしくは変数定義を使用します。
ということで、試してみました。
従来通りの define, definelong
hide footbox ' マクロ定義 !define WHO(x) actor x ' 複数行のマクロ定義 !definelong HELLO(x, y) x -> y : Hello! y -> x : ..Bye !enddefinelong WHO(Alice) WHO(Bob) HELLO(Bob, Alice)
こんな感じの絵ができます。
function と procedure
上記に加えて、新仕様の return関数 と プロシージャ を追記してみます。
' return関数 !function $double($a) !return $a + $a !endfunction ' プロシージャ !procedure $msg($src, $dst, $txt) $src --> $dst : $txt !endprocedure $msg(Alice, Bob, $double("帰れ"))
こんな感じになります。
まとめ
function
procedure
はちゃんと使えそうだし、難しいこともなさそうです。
今まで書いていたコードで使っていた define
definelong
がいつまでサポートされるのかわからないので、
今後書くコードでは function
procedure
を使うように変更していきます。