#6 今日のワンポイント : スニペットの強調表示の処理方法 (Lisa Feigenbaum)
皆さんは、VB 2005 で導入されたコード スニペットをお使いでしょうか。お使いであれば、ファイルを使う間、あたりが緑色の強調表示だらけになることにお気付きでしょう。これに関するご意見は、実に多数いただきました。スニペットのカスタマイズが済んだ後は、この強調表示が邪魔だというのです。この問題に対処するため、VB 2008 では、ユーザーによるスニペットのカスタマイズが終了したと判定する検知機能が向上しています。これに加え、強調表示を残すかどうかをユーザーが制御するためのコマンドをいくつか新たに導入しています。それでは、VB 2008 での動作を見ていきましょう。
スニペットは、スニペット ピッカー (右クリックして [スニペットの挿入]) またはショートカットから挿入できます。VB 2008 では、キーワード ショートカットがあるすべてのスニペットは IntelliSense にも表示されます。次の例をご覧ください。
「pro」と入力すると、VB 2008 IntelliSense のフィルタ機能が働き、一致する項目までスクロールします。Property スニペットのショートカットはキーワード ('Property') のため、IntelliSense に表示されます。ツール ヒントには、スニペットを IntelliSense から挿入する方法が表示されます。Tab キーを 2 回押すと、Property スニペットが挿入されます。
強調表示されるフィールドは、スニペットの置き換えと呼ばれます。この色は、スニペットを自分のプログラムに合わせてカスタマイズするため、変更する必要がある部分であることを示します。
これ以外にも、注目すべきスニペットの機能がいくつかあります。スニペットの置き換え可能部分の上にマウスを移動すると、そのフィールドを置換する方法について、次のようなツール ヒントが表示されます。
この Property の例のように、言語スニペットの場合さほど重要ではありませんが、特定のタスクの実行方法を示すスニペットの場合、このヒントはきわめて有益です。また、グループでスニペットの記述を分担し合う場合にも役立ちます。このヒントに、スニペットの使用方法を他のユーザーに伝える方法が表示されます。
もう 1 つスニペットにある便利な機能は、リンクされた置き換えです。スニペットには、常に同期する必要がある特定のフィールドがあり、VB ではこれらのフィールドがリンクされるため、一度にまとめて置換できます。たとえば、このプロパティ スニペットの最初のフィールドを置換するとします。
Tab キーを押してこのフィールドから移動すると、次のように、他の 2 つのリンクされた置き換えフィールドが更新されます。
次に、このスニペットのカスタマイズを完了します。
完了後は、この緑色を表示したままにする必要はなくなります。VB 2008 では、スニペットの範囲の外に入力し始めると、この強調表示が消えます。
メモ : C# で強調表示をオフにするには、Enter キーを押します。VB では、スニペットの外側のどこかに入力すると、この機能が働き、その時点でスニペットの編集が完了したと見なされます。
これにより、スニペットのカスタマイズを完了した際の使用感が向上します。しかし、もう一度スニペットを編集したくなり、上記のスニペットの機能がまた必要になることがあるでしょう。その場合、新しいエディタ コマンドを使用することができます。使用するスニペットの範囲内に戻って右クリックします。
[Show Snippet Highlighting] (スニペットの強調表示) をクリックすると、強調表示が戻り、リンクされた置き換えや、置き換えのツール ヒントなどの前述の機能もすべて使用できるようになります。
スニペットの編集が完了したら、スニペットの範囲の外を編集し、前述のように強調表示を消すことができます。また、右クリックし、先ほどの逆の [Hide Snippet Highlighting] (スニペットの強調表示の解除) コマンドを使用することもできます。
これで緑色が表示されなくなります。
Lisa Feigenbaum
投稿 : 2008 年 3 月 15 日 1:50 PM
分類 : Lisa Feigenbaum、IDE、VB2008、今日のワンポイント
VB チームの Web ログ - https://blogs.msdn.com/vbteam/archive/2008/03/15/6-did-you-know-you-can-now-manage-your-snippet-highlighting-lisa-feigenbaum.aspx (英語) より