仕事でシーケンス図を書く機会があったのでDockerでPlantUMLを起動して作業をしていたんですが、作成したコードをいちいちコピペして送信して画像を表示するという作業が結構面倒だったんですよね。
もしかしたらVisual Studio Codeにプラグインがあるんじゃないかと思って調べてみたらやっぱりありました。今回は備忘録としてVisual Studio CodeでPlantUMLを使う方法をまとめてみました。
PlantUMLのプラグインをインストール
Visual Stuio CodeのPlantUMLのプラグインはこちらですね。
Visual Stuio Codeの拡張機能のところでPlantUMLで検索をかければ出てくるのでこれをインストール。
Visual Stuio Code上の作業はこれだけです。
PlantUMLを使うための各種ソフトウェアをインストール
PlantUMLで画像をレンダリングするためには各種ソフトウェアが必要になります。それらのソフトウェアをインストールしていきます。
Macの場合はbrewで全てインストールできるのですが、Windowsの場合は手作業でJDKやGraphvizといったソフトをインストールする必要があります。WindowsでもChocolateyというパッケージ管理ソフトを使うと簡単にインストールできるので、今回はこちらを使っていきます。
作業としては「 Chocolatey インストール」と「各種ソフトウェアのインストール」の2つです。
まずはコマンドプロンプトを起動します。ただしコマンドプロンプトを普通に起動するとエラーが出てしまうので管理者権限で起動します。起動方法は以下。
コマンドプロンプトが起動したらChocolateyをインストールするために以下のコマンドを入力します。(少し長いですが...)
@”%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe” -NoProfile -ExecutionPolicy Bypass -Command “iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin”
Chocolateyのインストールはこれで完了です。いくつか警告が出ていますが特に問題ないでしょう。
次にChocolateyを使用して各種ソフトウェアをインストールします。コマンドプロンプトに更に以下のコマンドを入力します。
choco install plantuml
3回ほど「スクリプトを実行しても良いか?」という確認あります。確認が表示されたら「Y+Enter」を入力してインストールを継続して下さい。
これでVisual Studio CodeでPlantUMLを使う全ての準備が完了しました。
Visual Studio CodeでUMLを書く
ダイアグラムを表示
ではVisual Studio Codeでコードを書いていきます。PlantUMLは様々なダイアグラムに対応していますが今回はシーケンス図で。
新規でファイルを作成します。拡張子としては「*.wsd, *.pu, *.puml, *.plantuml, *.iuml」などが利用できますが、私は「*.pu」を使っています。一番入力文字数が少ないのでw
コードが入力出来たら「Alt+D」を押すとダイアグラムのプレビューが表示されます。
更にプレビューを表示した状態でコードを変更するとリアルタイムでダイアグラムが更新されます。これは便利ですね!
画像のエクスポート
当然ですが出力された画像をエクスポートすることもできます。
メニューから「表示」⇒「コマンドパレット(Ctrl+Shift+P)」を選択して「plantuml」と入力します。「plantuml」と入力するといくつか選択肢が表示されます。エクスポートする場合は「カーソル位置のダイアグラムをエクスポート」を選択すると、カレントフォルダ内のoutフォルダに画像が保存されます。
※保存フォルダは設定で変更することができます。
ちなみにコードにタイトルをつけておくとタイトル名で画像が出力されるので便利です。
サーバを使う場合
今回はローカル環境にレンダリングするためのソフトウェアをインストールしましたが、PlantUMLのサーバがあればそちらを使用することもできます。
サーバを使用する場合はVisual Studio CodeのPlantUMLの設定で以下をセットします。
“plantuml.render”: “PlantUMLServer”,
“plantuml.server”: “http://192.168.1.100:8080”,
おわりに
Visual Studio CodeでPlantUMLを使ってリアルタイムにダイアグラムが確認できるようになってかなり効率が上がりました。これからはこれを使って他のダイアグラムも書いていこうかな。
そういえば昔UMLの資格も取ったなー。実業務だとクラス図とシーケンス図くらいしか使った覚えないけどw