ちょっと前に@ITのサイトにVisual Studio .NET 2003の紹介記事を書きました。それが昨日あたりに公開されていますが、その後で気付いた、とても些細ではあるものの、個人的には非常に気に入っていること。それを書いてみたいと思います。
その前に、前提となる話を書きますね。これを書かないと、何に喜んでいるのか誤解されるということが分かりましたので。つまりこの文章は、一度公開後に書き直しているわけです。
まず、Visual Studioのインテリセンスがどんなものか振り返ってみましょう。たとえば、文字列型の変数sがあったとき、エディタ上で"s."とタイプすると、そこで書き込めるメソッドやプロパティなどがリストされて、そこから選ぶだけで入力ができます。これは、かなり前からサポートされた機能です。そして、Visual Studio .NET 2002では、統合開発環境が編集中のテキストを動的にコンパイルして解釈しているため、ユーザー定義のクラスなどでも、この機能が有効になっていました。つまり、こいつを使っていると、キーワードのフルスペルを入力する機会は極めて少なくなっていたわけです。このあたりは、既に過去の話ですから、それに喜んでいるわけではありません。
次に、Visual Studio .NET 2003にバージョンアップしたときに、選択候補位置の学習機能が付いたという話題があります。これは@ITの記事にも書きました。これのおかげで、選びにくい位置にあるキーワードも選びやすくなって、ますます快適になりました。たとえば、WriteLineを選ぼうとしても、たいてWriteもあるので、wを押しただけではWriteに飛んでしまいます。そのため、すぐWriteLineを選べません。そこで、矢印キーの下を押すか、WriteLまでタイプする必要があったわけですが。学習機能のおかげで、その手間が省けるようになりました。それは、とっくに原稿に書いた話題で、それを喜んでいるわけではありません。もう、その機能はとっくに身体に馴染んだ当たり前の機能です。
というわけで、以下が本題です。
たとえばC#でソースを書いているとします。そして以下のような行を書きたいとします。
System.Text.StringBuilder sb = new System.Text.StringBuilder();
Visual Studio .NET 2002だと、これをどう書くかというと、(たぶん合ってると思うけど)「System.t.s = new sy.t.s();」のようにタイピングしていきます。スペルが省略されている箇所は、意識的にインテリセンスに補完させている部分です。画面を見ながら操作すれば、分かりやすく間違わない操作です。
ところが、Visual Studio .NET 2003を使っていて気付いたのですが、newのあとでスペースを打った瞬間に開くインテリセンスに、モロにジャスト"System.Text.StringBuilder"という選択肢が出てきて、しかも、それが選択状態になっているのです。学習された結果かどうかは分かりませんが、ともかく、これはナイスです。そのため、newスペースの後は「();」とタイプするだけで終わりです。これはラクチンです。
System.Text.StringBuilderは比較的良く使うのですが、これ1個のためにusing System.Text;とは書きたくなくて、いつもフルに書いてる訳です。そうすると、かつてはインテリセンスを使ってもワンアクションでは書けませんでした。前はSystem.Text.StringBuilderをCOPY&PASTEしてnewの後に入れていたぐらいです。それが楽になったのは嬉しいですね。どんな壮大なエンタープライズコンピューティング機能よりも嬉しいです。
ちなみに、この機能は他のクラスでも機能するようです。