雑文発散

«前の日記(2016-10-03) 最新 次の日記(2016-10-05)» 編集
過去の日記

2016-10-04 [長年日記]

[Emacs] Emacs で PlantUML + puml-mode を使ってみた

ちょっとシーケンス図のようなものを描きたくなって、いつもなら 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-modeCask でインストールして試してみた。

実行には PlantUML の jar ファイルの所在を定義してやる必要があった。path やファイル名に 8046 はバージョン番号なのかな。

(setq puml-plantuml-jar-path "/usr/local/Cellar/plantuml/8046/plantuml.8046.jar")

また、サンプルの PlantUML フォーマットのテキストを用意する。puml-mode だとタグ(?)がハイライトされた。

Emacs puml-mode

これで M-x puml-preview コマンドを実行すると、Emacs 内部で PlantUML のプレビューが表示された。

Emacs puml-mode preview

デフォルトでは SVG フォーマットの画像としてプレビュー表示されるのかな。プレビュー時にも外部プログラムとして jar ファイルを起動するので、少し待たされる。

まだ、PlantUML の書式に慣れていないので、割と頻繁にプレビューで確認したい気持ちになるので、この待ち時間がちょっとストレス。まぁ、これは書式が頭に入ってくれば軽減されるかもな。。。

Atom だとライブプレビューするプラグインがあるようだけど、これ裏側どうやってるのかな。

PlantUML にサーバとして立ち上げっぱなし的な機能もあったりするんだろうか?