以前VS2008のテキストエディタがJavaScript インテリセンスやCSS スタイル インテリセンスに対して、改善されたことについて少し書かせて頂きました。
最近ある人がコードを書いている時に肩越しに見ていると、前には見たことがなかった新しいテキスト編集機能を使っていたのです。("ん?今どうやってやったの?")
以下は今週学んだコード編集の新しく改善された点を全てではありませんがリストにしました。まだ知らないものがたくさんあると思いますが、まずはこれらを共有しておきたいと思います。
透明インテリセンスモード
VS2005でインテリセンスを使っていて嫌だったことの1つは、インテリセンスがドロップダウンしてきた時にその下にあるコードが不明確になることです。
VS2005だと、コードをちゃんと見るためにインテリセンスから一度抜けて、その後やっていたことを終わらせるために戻っていました。このため、結局考えていたことやタイピングのフローが途切れてしまったりします。
VS2008には新しいいい機能があり、簡単にインテリセンスのドロップダウンリストを半透明にすることができます。インテリセンスのドロップダウンが表示されている間、"Ctrl"キーを押しておくだけで半透明のモードにスイッチすることができ、インテリセンスから抜けることなく、下に隠れているコードを素早く見ることができます。
"Ctrl"キーを離した時、エディタはすぐに通常のインテリセンスビューに戻って、さっきのインテリセンス ウィンドウの場所でタイプを続けることができます。
この機能は全ての言語(VB, C#, and JavaScript)で機能します。またHTML、XAML、XMLベースのマークアップにも機能します。
VB インテリセンス フィルタリング
VBチームはいくつかインテリセンスを改善しており、それによりAPIをより簡単に操作することができるようになりました。
インテリセンス コンプリーション(コード補間)で現在検索しているAPIを上手くピンポイントするように、タイプしたものに対して利用可能なメンバーリストを自動的にフィルターしてくれます。例えば、もしASP.NETコードビハインドのページで、"R"をタイプした場合、全ての利用可能なタイプとメンバーのリスト(最初の文字が"R"で選択されたリストで)を全て表示します。
検索しているものの2番目の文字をタイプした時(この場合だと"e")、VBは自動的にフィルタリングして"Re"で始まるタイプだけを表示して、一番可能性のあるオプションをハイライトします。
"s"をタイプした時、リストはさらにフィルタリングされます。
"p"をタイプすると、フィルタリングして利用可能な1つのオプションだけがドロップダウンされます。
ドロップダウンに全て表示させる以前のモデルに比べ、これはクリーンで直観的だと思います。
VB LINQ インテリセンス
以前にいくつかLINQ とLINQ to SQLについて投稿しました。明らかですがVBとC#は共にLINQおよびLINQ to SQLを全面的にサポートしています。VBチームは特にユーザがLINQ文をエディタで書く時に便利なインテリセンスのヒントを提供できるようかなりいい仕事したのではないかと私は思っています。
例えば、私がLINQ to SQLシリーズのパート 2でビルドしたようなLINQ to SQLデータモデルを持っていると仮定します。私はVBコードエディタをそれと一緒に簡単に動作させて使うことができます。以下を見て頂くと、LINQクエリシンタックスを書く時にガイドしてくれるツールチップをどのようにVBが自動的に提供するのかを確認して頂けると思います。
その後クエリ文を書き始めることができ、VBのインテリセンスがそれを作成するガイドを行います。
上記の文でデータベースから3つのカラム値を取得し、新しい匿名タイプを作成します。それにより、データをループさせて取得し、データに対して作業することができます。
C#のUsing文を管理
C#エディタにもいくつか素晴らしいインテリセンスの改善点が追加されています。明らかですが最大のものとしては言語のインテリセンスと新しい言語機能(ラムダ式、拡張メソッド、クエリシンタックス、匿名タイプなど)へのリファクタリングサポートです。上記のVBの例と同じく、C#はタイプの推測と匿名タイプのインテリセンス コンプリーション(コード補間)をサポートしています。
VB2008で最近気づいた小さいけどいいもので新しい機能の1つは、C#でusing文を上手く管理するためのサポートです。using文のリストを選択して、右クリックし、サブメニューから"Organize Usings(Usingを管理)"を引き出すことができるようになりました。
名前空間をアルファベット順にソートする(私のイライラの素の1つ)のにこれを使うことができます。また、オプションとして"Remove Unused Usings(使用していないUsingを削除)"コマンドを使って不必要な名前空間の宣言をファイルから削除することができます。
このコマンドを使う時はエディタがコードファイルでどのタイプを使用しているか分析し、自動的に宣言されているけどサポートの必要のない名前空間を削除します。小さいけど使える機能です。
まとめ
上記のエディタの改善点リストは全てを網羅していません。どちらかというと、先週ちょっと遊んでみた小さい改善点が少しだけです。この投稿のコメント部分で気づかれた物がありましたら投稿して頂ければ、今後更新させて頂きたいと思います。
Thanks,
Scott