【macOS】Riderでクラス図を書くプラグインPlantUML Integration

  • URLをコピーしました!
目次

クラス図をRiderで書いてみたい

クラス図を勉強・利用したくてどのツールを使用するか調べていたところ、Riderのプラグインでも可能という記事を見つけ早速試してみました。実際に表示するまで結構苦労したので記事として残しておきます。

PlantUML Intergration について

Riderで利用できるプラグインです。このプラグイン単体では期待の表示まで出来ませんでしたので、Riderのプラグイン以外にも、Homebrew経由で「Graphviz」をインストールしています。

下記 PlantUML Intergration 公式ページの下部にはドキュメントやライセンス、コードのリンクがありますので、詳しく知りたい方はそちらをご参照下さい。

https://plugins.jetbrains.com/plugin/7017-plantuml-integration

プラグインPlantUML Intergrationをインストールする

STEP
Riderの設定「Preferences」を開く
STEP
左側の項目から「Plugins」を選択します。
STEP
画面の中央の「Marketplace」タブを選択し検索から「plantUML」を検索
STEP
インストールして有効にする

インストールしてプラグインを有効にする際、サードパーティ製である警告がでます。

(Google翻訳)

次のプラグインは JetBrains から提供されたものではありません: PlantUML 統合 (Eugene Steinberg、Vojtech Krasa) サードパーティのプラグインを使用すると、プラグイン ベンダーが個人データを処理する場合があります。 個人データの処理に関する詳細については、プラグイン ベンダーのドキュメントを確認してください。 JetBrains は、サードパーティのプラグイン ベンダーによる個人データの処理について責任を負いません。

プラグインを有効にする際に、Riderの再起動が必要です。

STEP
PlantUMLの画面を開く

私の環境では、Riderの画面右側の縦タブに「PlantUML」のタブが表示され中には説明が記述されていました。

STEP
簡単なクラス図を書く

適当なテキストファイルを用意し下記を記述します。ファイル名はHellow.puとしています。

@startuml
Hello <|-- World
@enduml
STEP
Riderで開いてみる

画面上に何か表示されましたが、思っていたようなクラス図では表示されませんでした。

dot のファイルが無いのと、Graphvizが無いとあります。

STEP
Homebrewをインストールする

Graphvizは、クラス図の図形などを表示する為に使用するツールです。このGraphvizをインストールするにはまずHomebrewが必要です。

Homebrewがインストールされていない場合はインストールする必要があります。

STEP
コンソールからGraphvizをインストールする

下記コマンドを入力してEnterを押します。

brew install graphviz

インストールされたかバージョンを確認します。

dot -v

バージョン情報が表示され問題なさそうです。

libdir の部分にパスが表示されています、途中までのパスを使用するのでコピーしておきましょう。コンソールは閉じます。

/opt/homebrew/Cellar/graphviz/【バージョン】/

STEP
PlantUMLの設定画面を開く

Riderの画面に戻り、設定から「Open Settings」を選択します。

STEP
Graphviz dot までのパスを指定する

設定画面中央にある、「Graphviz dot executable:」にdotまでのパスを指定します。

先程コピーしたバージョンまでのパスに「/bin」を付加して「Save」を押下します。

/opt/homebrew/Cellar/graphviz/【バージョン】/bin

STEP
リロードしてクラス図を表示する

左から2番めの「Reload PlantUml Diagrams」を押すと、期待していたクラス図が表示されました!

実際に使い始めるのはこれからなので、今回はここまでとなります。

それっぽいものを書いてみる

@startuml
package Example
{   
    interface IBase
    {
        {abstract} aaa() // abstractです
        {static} bbb() // staticです
    }
    class Base
    {
        - int _aaa // privateです
        # string _bbb // protectedです
        ~ bool _ccc // package privateです 
        + MyType _ddd // publicです
        - int: aaa() // privateメソッドです
        # int: bbb() // protectedメソッドです
        ~ int: ccc() // package privateメソッドです
        + int: ddd() // publicメソッドです
    }
    class Hoge
    {
        int: aaa
    }
    class Poge
    {
        int: aaa
    }
    enum MyType
    {
        One = 1,
        Two = 2,
    }
    IBase <|-- Base 
    note on link:継承します

    Base <|-- Hoge
    note on link:継承します
    
    Base <|-- Poge
    note on link:継承します
    
    note right of IBase: インターフェイスです
    note right of Base: Baseクラスです
}
@enduml

環境バージョン情報

環境バージョン
チップApple M2
macOSMonterey 12.5.1
JetBrains Rider2022.2.2
Homebrew3.6.1
Graphviz dot6.0.1
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次