ちょっとシーケンス図のようなものを描きたくなって、いつもなら OmniGraffle で描くのだけど、ふと PlantUML を使ってみるかと思い立った。以前、社内で使っている人がいるのを見て、これ、便利そうだなーと思っていたこともある。
PlantUML 自体は Homebrew でダウンロードできた。
$ brew install plantuml
plantuml
というコマンドに見える何かが /usr/local/bin/plantuml
インストールされるのだけど、その実態は jar ファイルを起動するシェルスクリプトだった(行末の \
は、ここに書くためにオレが入れた)
#!/bin/bash
GRAPHVIZ_DOT="/usr/local/opt/graphviz/bin/dot" \
exec java -jar /usr/local/Cellar/plantuml/8046/plantuml.8046.jar "$@"
試しに PlantUML 形式のサンプルテキストを作成して、この plantuml
コマンドに食わせると、PNG 画像ができる。Java なので、コマンド実行時に少し待たされるのがアレだけど、これは確かに便利だなぁ。
そこで、Emacs で PlantUML 用のモードとかないのかな?と思ってググってみたらやっぱりあった。
この記事を参考にしつつ、puml-mode を Cask でインストールして試してみた。
実行には PlantUML の jar ファイルの所在を定義してやる必要があった。path やファイル名に 8046
はバージョン番号なのかな。
(setq puml-plantuml-jar-path "/usr/local/Cellar/plantuml/8046/plantuml.8046.jar")
また、サンプルの PlantUML フォーマットのテキストを用意する。puml-mode
だとタグ(?)がハイライトされた。
これで M-x puml-preview
コマンドを実行すると、Emacs 内部で PlantUML のプレビューが表示された。
デフォルトでは SVG フォーマットの画像としてプレビュー表示されるのかな。プレビュー時にも外部プログラムとして jar ファイルを起動するので、少し待たされる。
まだ、PlantUML の書式に慣れていないので、割と頻繁にプレビューで確認したい気持ちになるので、この待ち時間がちょっとストレス。まぁ、これは書式が頭に入ってくれば軽減されるかもな。。。
Atom だとライブプレビューするプラグインがあるようだけど、これ裏側どうやってるのかな。
PlantUML にサーバとして立ち上げっぱなし的な機能もあったりするんだろうか?