暗黙的な参照
実は参照設定は「オプション→テキストエディター→JavaScript→Intellisense→参照」メニューでも追加できる。これは「暗黙的参照」と呼ぶらしい。

実はここに~/Scripts/_references.jsへの参照があらかじめ組み込まれている。そのため_references.jsファイル中の<reference>ディレクティブが反映されるようになっているのだ。
ここに設定している参照ファイルはカテゴライズされている。Web関係の場合はImplicit(Web)内に追加することになっているらしい。
でここで参照設定しているファイルは_references.js以外にもいくつかある。気になるのは*.intellisense.jsというファイルである。これは何なのか。
*.intellisense.jsファイル
このファイルはintellisenseに別途情報を与えて正確に候補表示を行ったりするための補足ファイルである。例えばa.jsというファイルがあり、a.intellisense.jsを定義すると、a.intellisense.jsの内容はデザイン時(ソースコードをエディットしている時)intellisenseの候補表示時に取り込まれ、実行される。
カスタマイズはJavaScriptコードを書くことによって行う。その際デザイン時のみ利用可能なintellisenseオブジェクト使用し、高度なカスタマイズが可能である。
このファイルはどういうことが行えるのかというと、MSDNの「JavaScript IntelliSense の拡張」によれば、
- デザイン時に発生するイベントのフック(
intellisense.addEventListener) - メソッドに対するアノテーションの追加(
intellisense.annotate()) - デザイン時に意図した候補表示がされるようなソースコードの変更
JavaScriptのIntellisenseではコードを実際に実行してその結果をintellisenseに反映しているが、コードの実行結果によっては意図した候補が表示されない場合がある。intellisense.jsファイルを使用すれば元のソースコードをいじらずにコードの挙動をIntellisenseに合わせるように変更することができる。
この*.intellisense.jsは面白い機能だがちょっと使いこなし方がわからなくて苦労しているところである。