概要
vs code上でC#を使うときには「コード補完」「定義にジャンプ」など様々なコーディング支援を受けることが可能です。
一方、HeliScriptにはそのような環境がまだありません。
そこで、当記事ではHeliScriptコードをC#として強引に認識させることで、HeliScriptでも支援を受ける方法を紹介します。
何ができるようになるか
下記以外にもC#だと出来るようなことが出来るようになります
コード補完
- . を打った時点で候補がでます
- メソッドを覚えてなくてもオプションから選ぶだけで良くなります
- 独自クラスだけでなく、Itemなど既存クラスの補完もできるようにしてます
GoToDefinition
- F12などで定義にジャンプします
- メソッドから処理の流れを追いやすくなります
- ファイルをまたぐ移動も可能です
参照
クラス間メソッド間の関係がわかりやすくなります
アウトラインの表示
ホバーガイドの表示
定義に飛ばずともその場で詳細を把握できます
変数名など識別子の一括変更
識別子を選択してF2ボタンから変数名を修正することで、全ファイルの変数名が一発で更新されます。リファクタリング時に必須機能といえます。
手順
基本的には.csprojファイルを作成して、settings.jsonを編集するだけで一連のコーディング支援が受けられます。
動作環境
- ターミナルで
dotnet --version
を実行しログがでる- でない場合、vs code向け.NET SDKをPCにインストールしてください
- VSCodeにC#拡張機能がインストールしてある
1. .csprojを作成し編集する
ターミナルでUnityレポジトリのルートに移動し下記コマンドを実行する。
dotnet new console --output . && rm Program.cs
csprojがレポジトリルートに作成されるので、下記のようにItemGroupに.hsまでの相対パスを追記してください。
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<Compile Include="Assets\HeliScript\Hoge.hs" />
<Compile Include="Assets\HeliScript\(追加したファイル名).hs" />
</ItemGroup>
...
hsファイルを作成する度に、その.hsパスを追記する必要があります
2.settings.jsonの編集
レポジトリルートに.vscode/settings.jsonがなければ作成し、settings.jsonに下記を追加してください。
{
"dotnet.server.useOmnisharp": false,
"files.associations": {
"*.hs": "csharp"
},
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "entity.name.type",
"settings": {
"foreground": "#569cd6"
}
}
]
},
"workbench.colorCustomizations": {
"editorError.foreground": "#212121",
"editorWarning.foreground": "#212121",
"editorOverviewRuler.errorForeground": "#212121",
"list.errorForeground": "#dfdfdf",
"list.warningForeground": "#dfdfdf"
}
}
(3. CodeCompletionフォルダの配置)
下記GithubからCodeCompletionフォルダを取得し、フォルダごとレポジトリのルートに置いてください。
VKCメソッドのサジェストしてくれるようになります。
https://github.com/umezy/VketCloudAutomationTools/tree/main
トラブルシューティング
コード支援されない
C# 拡張機能を一度削除し、再インストールすると治ることがあります
エディタ立ち上げ時のポップアップエラー
「esc」を押せば消えます。xボタンを押すよりは楽に消せます。
componentクラス内でコード補完されない
仕様です。class内のみ対応してます