hmV8用のマクロは、ECMAScript6で記述しても良いですが、
TypeScriptで記述する、という選択肢が最有力となります。
TypeScriptで記述することで、ECMAScript部分の型の間違いが事前に解消されるだけでなく、
hmV8が利用可能な「.NET Frameworkライブラリ」の入力補完も手堅い形で可能となります。
Visual StudioやVisual Studio Codeで TypeScriptを記述することで、hmV8用途の高度な補完環境を実現出来ます。
入力補完上問題となりやすいのは、どちらかと言えばこちらです。
.NET Frameworkのメソッドやプロパティ名は、
Visual Studioの高度な入力補完が前提となっていることもあり、
大文字小文字が入り混じった長めのプロパティ・メソッド・型で構成される傾向が高く
入力補完に頼ることなく正確に入力していくのは、困難と言えます。
そこで、.NET Frameworkのアセンブリや、自作のアセンブリを内部走査し、
自分で利用したい「.NETの指定のクラス」を、TypeScriptで入力補完が効くように
自動的にTypeScript型定義ファイルを生成するツールを作成しました。
.NET Framework 4.7以上。
以下はコンソール(cmd.exe)での例となっています。
となります。
探索対象は、「.NET 4系フォルダ」と「カレントフォルダ」の.dllとなります。
もしもC#等で自作した.dllを対象としたい場合、カレントフォルダにコピーすると良いでしょう。
PowerShellだと、「`1」といった文字列を引数として正しく扱えないため、
'List`1'や'Dictionary`2'といったように、シングルクォーテーションで引数を囲ってください。
では、System.Windows.Forms FormとButtonを使う例を具体的に追ってみましょう。
として、まずは、FormのTypeScript型定義テキストを取得します。
これはコンソールの都合上、ShiftJISのファイルになってしまいますので、
エディタで開いて、全体をコピーし、ClrForms.d.tsなどといったファイル名にしてみましょう。
自動で生成したり、同じような型定義をreference pathすると、エラーが出ますので、
tasks.json(ご自分のTypeScriptの環境に合わせてください)で「-skipLibCheck」オプションを付けて、
TypeScript宣言ファイル(d.ts)についてはエラーが出ないようにしましょう。
入力補完が効くだけではなく、変数等をマウスで押し当てた時に、
それが一体何なのかが.NETに沿った情報が得られるのが良い。
TypeScriptによってトランスパイルする(VSCodeの場合は、CTRL+SHIFT+B)
b.jsが出来上がります。