PlantUMLとAtomを組み合わせる方法


PlantUML を使うとき、Atom と組み合わせると、とても便利だったので、メモ。

前提

  • macOS Mojave
    • 10.14.4
  • Homebrew
    • 2.1.1
  • Java
    • OpenJDK 11.0.1
  • Atom
    • 1.34.0

インストールするもの

なお、よく紹介されている plantuml-viewer はエラーが出て、正常に動作しませんでした。1

手順

Java

お好みの方法でインストールしてください。

Atom

お好みの方法で(以下省略)

PlantUML

Homebrew で PlantUML をインストールします。

$ brew install plantuml

シーケンス図とアクティビティ図以外も作成したい場合は graphviz が必要です。
ただし、Homebrew は plantuml をインストールすると、自動的に graphviz もインストールしてくれます。

==> Installing dependencies for plantuml: libpng, freetype, fontconfig, libtiff, webp, gd, pcre, readline, sqlite, python, glib, jasper, netpbm, gts and graphviz

plantuml -version でインストールに成功したかを確認することができます。2

$ plantuml -version
PlantUML version 1.2019.05 (Sun Apr 21 01:45:36 JST 2019)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.1+13
Operating System: Mac OS X
OS Version: 10.14.4
Default Encoding: UTF-8
Language: ja
Country: JP
Machine: ***************.local
PLANTUML_LIMIT_SIZE: 4096
Processors: 4
Max Memory: 2,147,483,648
Total Memory: 134,217,728
Free Memory: 127,336,976
Used Memory: 6,880,752
Thread Active Count: 1

The environment variable GRAPHVIZ_DOT has been set to /usr/local/opt/graphviz/bin/dot
Dot executable is /usr/local/opt/graphviz/bin/dot
Dot version: dot - graphviz version 2.40.1 (20161225.0304)
Installation seems OK. File generation OK

language-plantuml

Atom は PlantUML ファイルを構文強調してくれません。
Preferences -> Install から language-plantuml を検索して、インストールします。

インストール後は、とくに設定する必要なく、構文強調されるようになります。

plantuml-preview

PlantUML ファイルをすぐにプレビューできるようにします。

Preferences -> Install から plantuml-preview を検索して、インストールします。

インストール後、Preferences -> Packages から plantuml-preview を検索して、以下の項目を設定します。

  • Graphvis Dot Executable

    • /usr/local/opt/graphviz/bin/dot
      • plantuml -version の実行結果の中にも記載されています。
  • PlantUML Jar

    • /usr/local/Cellar/plantuml/1.2019.5/libexec/plantuml.jar
      • インストールした PlantUML のバージョンによってパスが変わります。
      • find / -name "plantuml.jar" 2>/dev/null で検索するのがオススメ。

使い方

  • Atom で PlantUML ファイルを作成します。
  • メニューの Packages -> PlantUML Preview -> Toggle をクリックします。
  • プレビューが開きます。
  • ファイルを保存するたびに自動的に再描画してくれます。
    • ファイルを保存しないと再描画してくれないので注意

キーバインド

plantuml-preview では、デフォルトで以下のキーを使うことができます。

キー 動作
ctrl + alt + p プレビューの表示/非表示を切り替える
cmd + + 拡大する
cmd + = 拡大する
cmd + _ 縮小する
cmd + - 縮小する
cmd + 0 縮尺をリセットする
cmd + 9 縮尺をプレビュー画面に合わせる

PNGファイルの解像度

SVG で出力したらキレイなのに PNG で出力したら汚く見える場合は、PNG ファイルの解像度が低い可能性があります。
PlantUML ファイルで skinparam dpi 300 のように設定すると、解像度を大きくすることができます。

サンプル

例えば、以下のような適当なコードの場合。3

@startuml

'解像度設定
skinparam dpi 300

abstract class AbstractClass {
  # {abstract}getValue()
  # {abstract}prefixValue()
  + printOut()
}

interface Writable {
  + {abstract}write()
}

class ConcreteClass1 {
  # getValue()
  # prefixValue($prefix)
  + setValue($value)
  - $value
}

class ConcreteClass2 {
  # getValue()
  # prefixValue($prefix)
  + write()
}

AbstractClass <|-- ConcreteClass1
AbstractClass <|-- ConcreteClass2
Writable      <|-- ConcreteClass2

@enduml

プレビューすると、以下のように表示されます。

参考


  1. Java のバージョンを 8 にすれば正常に動作するとかいう記事も見かけたけど、そこまでして使おうとは思わなかった。 

  2. ローカルホスト名(*.local)はアスタリスクで隠しました。 

  3. PHP 公式マニュアルの 抽象クラス に手を加えました。