🐙

VSCode版CSharp to PlantUMLでC#のクラス図を作る

2024/03/26に公開

インストール環境

VSCode版PlantUMLをインストール済であること
https://zenn.dev/nekoxsgames/articles/921ecbdcf57ea9

  • Windows 11
  • VSCode 1.87.2

インストールしたVSCode拡張機能

事前にVSCode版PlantUMLインストール済である
PlantUML設定は”Local”を前提としている

ID: pierre3.csharp-to-plantuml
説明: Generator to create class-diagram of PlantUML from C# source code.
バージョン: 1.4.0
パブリッシャー: pierre3
VS Marketplace リンク: https://marketplace.visualstudio.com/items?itemName=pierre3.csharp-to-plantuml

CSharp to PlantUML 設定

Unityプロジェクト全体を作図したら大変なのでプロジェクト直下(Unityプロジェクト/Assets)に限定する

  • inputPath : "Assets"
	"csharp2plantuml.inputPath": "Assets",
	"csharp2plantuml.allInOne": true

CSharp to PlantUML の設定項目

@ext:pierre3.csharp-to-plantuml
Head 説明 設定例
allInOne すべてのダイアグラムの出力をファイル include.puml にコピーする
attributeRequired 型宣言に「PlantUmlDiagramAttribute」がある型のみが出力する
createAssociation フィールドとプロパティの参照からオブジェクトの関連付けを作成
excludePath ファイルやディレクトリのパス(InputPathからの相対パス)をカンマで区切って指定 (例:’obj,PropertiesAssemblyInfo.cs’)
excludeUmlBeginEndTags pumlファイルから「@startuml」「@enduml」タグを除外する
ignoreAccessibility 無視するメンバー
inputPath 入力フォルダ(ワークスペースから相対パス) Assets
outputPath 出力フォルダ(ワークスペースから相対パス)
public パブリックアクセシビリティメンバーのみ出力

作図テスト

シーケンス図

新規ファイル作成 -> test_sequence.puml
保存後、下記内容を張り付けて ALT+D

test_sequence.puml
@startuml test_sequence
Alice -> Bob: test
@enduml

クラス図

新規ファイル作成 -> test_class.puml
保存後、下記内容を張り付けて ALT+D

test_class.puml
@startuml test_class
class client
{
    + ClientName : string
    + StartGame(PlayerID : int) : void
}
@enduml

C#からUMLコンバート

  • Assts/Scripts にC#スクリプトを作成済であること
  • コマンドパレット( CTRL+SHIFT+P ) -> "C# to PlantUML:Class-diaglam"

参考

https://soft-rime.com/post-3293/

おまけ

NuGet経由

NuGet パッケージ"PlantUmlClassDiagramGenerator.Attributes"のインストール
https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes
"dotnet add package PlantUmlClassDiagramGenerator.Attributes --version 1.3.0.1"

"Assembly-CSharp.csproj"にインストールする場合

dotnet add Assembly-CSharp.csproj package PlantUmlClassDiagramGenerator.Attributes --version 1.3.0.1

"Assembly-CSharp.csproj"からアンインストールする場合

dotnet remove Assembly-CSharp.csproj package PlantUmlClassDiagramGenerator.Attributes

Discussion