Elin Element InspectorというVSCode拡張を作りました。
- VSCode Marketplace: https://marketplace.visualstudio.com/items?itemName=pocke.elin-element-inspector
- GitHubリポジトリ: https://github.com/pocke/elin-element-inspector
機能の説明#
Elinのデコンパイルされたソースコードでは、ElementのIDが数値リテラルとして表現されています。おそらく元々のソースコードでは定数参照になっているものが、最適化によりその情報が抜け落ちているのだと思われます。 Elementを使用しているコードを読み解くには、IDの数値の意味を手動で調べる必要があり、かなり煩雑です。
このVSCode拡張はその問題を解決します。
Element IDの横にElement名を表示#
VSCodeのinlineDecorations APIを使用して、Element IDの横にそのElementの名前を表示します。

この機能は、特定の関数の引数としてElement IDが渡されている場合に機能します。
関数の一覧は手動で拡張に登録されています。関数を追加したい場合は、elinElementInspector.additionalTargets設定に関数名と引数の位置を追加してください。
また、GitHubなどでリクエストをいただければ、デフォルトの設定として組み込めるかもしれません。
任意の数値リテラルにホバー表示#
Element IDの数値が関数の引数以外の場所で現れることもあります。そのような場合のために、任意の数値リテラルに対してElementの情報をホバー表示する機能も提供しています。

この機能はElement以外の数値にも反応することに注意してください。hover時なのでそこまで邪魔にならないは予想しています。
設定など#
デコレーション機能として表示する文字列は、設定からElement sourceの任意の列を選択できます。elinElementInspector.format設定を変更してください。
elinElementInspector.enableInlineDecoration及びelinElementInspector.enableHoverを falseに設定することで、それぞれの機能を無効化できます。
デフォルトではこの拡張はC#のプロジェクト全てで有効になります。特定のプロジェクトでのみ有効化したい場合は、VSCode側の設定で、Workspaceごとに有効・無効を切り替えられます。