コードミックス ビジュアルプログラミング StateGo

StateGoで出力されたソースの編集

StateGoで出力されたソースの編集

ソースに編集をしようとしたら、そのソースはStateGoで作られていた。
ベテランプログラマがStateGoが初めてで戸惑った。
そんなベテランプログラマのための解説です。

 

 

ソースを直接編集してよいのか?

StateGoは、ソースコードの決まった場所に出力します。

 

例えば、Unity C#の場合、

#region // [PSGG OUTPUT START] indent(4) $/./$
        :
    ( この間に出力されます。つまり、ここが編集禁止!! )
        :
#endregion // [PSGG OUTPUT END]

 

出力開始と終了に使われる文字列([PSGG OUTPUT START])は、設定で変更が可能です。
そのため、スタートキットとサンプルでは次の3パターンが使われています。
3パターンもあるのは歴史的な経緯のためです。

 

パターン1 ※旧ツール名(SYN-G-GEN)が使われているもの

[SYN-G-GEN OUTPUT START] 〜 [SYN-G-GEN OUTPUT END]

 

パターン2 ※プロジェクト名(PSGG)が使われているもの

[PSGG OUTPUT START] 〜 [PSGG OUTPUT END]

 

パターン3 ※正式ツール名(STATEGO)が使われているもの

[STATEGO OUTPUT START] 〜 [STATEGO OUTPUT END]

 

つまり、出力ヵ所以外でのソースコード編集は自由に行ってください。

 

StateGoからの出力部分を編集するには?

ソースコードを開いて編集しようとしらStateGoの編集部分だった。
そんな場合は元となるStateGoデータファイルをStateGoでオープンする必要があります。

 

StateGoデータファイルをオープンする

StateGoがエディタの外部ツールとして登録されている場合は、ショートカットキーでオープンすることができます。

 

以下の記事を参考にして下さい。

 

Visual Studio Codeとの連携
Visual Studio 2015,2017,2019との連携

 

エディタとの連携がない場合は、変換結果の出力部分の最初の1行目のコメントでStateGoデータファイルのローケーションを知ることができます。

 

(例)
変換結果1行目より、本ソース直下のdocフォルダのMoveControl.psggより変換されたことが判明

#region // [PSGG OUTPUT START] indent(4) $/./$
// psggConverterLib.dl…psgg-file:doc\MoveControl.psgg←変換結果1行目
          :
          :
#endregion // [PSGG OUTPUT END]

 

ファイルをエクスプローラで表示し、ダブルクリックでオープンします。

 

ステートはどこ?

StateGoが立ち上がるとフローが表示されます。
ステート数が膨大になると、編集対象のステートが何処だかわかりません。

 

まず、ソースコードよりステート名を確認します。
多くの場合、関数名がステート名です。


 

ステート名が分かった所で、StateGoで検索を行います。
ウインドウメニューの"ツール"→"検索"から検索ダイアログを開きます。

 

ステート名で検索し、結果をダブルクリックすると対象ステートがフォーカスされます。


 

どこを変更すればいいのか?

ステートの内容はアイテム編集ダイアログで行います。
以下の説明をお読みください。クリックで該当ページに移動します。


 

アイテムはテンプレートにより変換されます。
次の記事をお読みください。
テンプレートと変換について

 

現在のステートに使用されているテンプレートをソースパネルから確認することができます。

 

@ステートをクリックしてフォーカス
結果:ソースパネルにソースが表示

 

Aソースパネルのテンプレートをクリック
結果:現在使用中のテンプレートが表示

 

以下の画像をクリックすると動画で再現されます。


 

対象となるアイテムを探し編集してください。

 

編集後には、"保存と変換"ボタンをクリックして出力させます。

 

以上で完了です。

 

番外編:basestateが使われている場合

ステートの継承機能がbasestateです。
basestateが指定されている場合、元のbasestateを編集するか、あるいは、現ステートのアイテムに変更内容を追加して修正します。

 

以下の記事をお読みください。

 

コピーと継承について

 

以上

トップへ戻る