ナビゲーションと検索

ReSharperのナビゲーション機能を使うと、ソリューション全体を簡単に横断できます。 コードベース内のあらゆるファイル、型、またはメンバーにジャンプしたり、 特定のシンボルからその使用箇所、基本シンボルや派生シンボル、あるいは実装に移動したりできます。

ReSharperのコンテキスト対応ナビゲーション

Navigate Toは、あらゆるコンテキストに応じて移動できる、単独のショートカットです。 Navigate Toは、現在のキャレット位置で使用可能な、すべての移動先をリスト表示します。 Alt+`を押すと、キャレット位置のシンボルの宣言部、型宣言、基底クラス、継承先、使用箇所のほか、インターフェースの実装部分、関数の終了部分などに素早く移動できるリンクを表示します。

ファイルメンバーに移動

ファイルメンバーに移動

現在ファイル内の特定のメソッドやフィールドにすばやく移動するには、Alt+\を 押すと使用できるGo to File Memberコマンドを使ってください。 Go to Typeと同様に、シンボル名を入力し始めてから一致するメンバーをリストから 選択してください。 この機能は、サポート対象のすべての言語のファイルメンバーに対応しています。

Go to Everything/Type(...に移動/型に移動)

Ctrl+Tで使用できるこのコマンドには、2種類の機能があります。

Go to Everythingは最初に現れるもので、 推測可能なすべての移動先(型、シンボル、ファイル)にすばやく移動できるものです。 候補値の一覧はコマンドを入力するとすぐに現れ、初期状態では、最近移動したファイルやコードの場所が表示されています。 入力値に応じてリストの内容は更新されます。 /から始まる特殊なインラインコマンドを使うと、検索結果を細かく絞り込めます。

Go to Typeはショートカットをもう一度押すと現れ、 ソリューション内の任意の型に移動できるものです。

また、これらの機能や他の「Go to」機能もワイルドカードに対応しています。 *(アスタリスク)は0文字以上の文字を意味します。検索クエリを二重引用符で囲むと、完全一致検索を実行します。完全一致検索では?(クエスチョンマーク)は、1文字の1回だけの出現を意味します。

テキスト検索用の「テキストに移動」

テキスト検索用の「テキストに移動」

Ctrl+T,T,Tで呼び出せるこのナビゲーションアクションを使うと、ソリューションに含まれるソースファイルやテキスト形式のファイル内の任意のテキストを素早く検索して移動できます。 他のナビゲーションコマンドと同様に、一致する項目が多すぎる場合は数字キーパッドの+を叩いてFind Resultsウィンドウ内の結果を絞ることができます。 また、特殊なインラインコマンドを使って検索結果を絞り込むこともできます。現在のプロジェクト内を検索するには/cpを、指定の拡張子を持つファイル内を検索するには/ext:を、指定ファイルマスクを持つファイル内を検索するには/fm:を使います。

実装に移動と派生シンボルに移動

Go to Implementation(実装に移動)

Ctrl+F12のショートカットで呼び出せるこのナビゲーション機能を使うと、基本型やメンバーから、継承チェーンの中間ステップを飛ばして、最終実装部分の任意の箇所にジャンプできます。

この機能は、Go to Derived Symbolsと同様の動作をしますが、型階層内を1ステップ以上飛ばす必要があるときに時間を節約できます。 GIFを見て動作の違いをご覧ください。

アクションに移動

Go to Action(アクションに移動)

ReSharperを使うと、メニューを掘り下げることなく、任意のアクションを素早く検索して適用できます(アクションとは、現在のキャレット位置で使用できる実行可能なコマンドや、ツールウィンドウを開くコマンドを指しています)。 アクションを見つけるには、エディタ内の任意の場所でAlt+Enterを押し、コマンド名や関連キーワードの入力を開始するだけです。

公開APIに移動

公開APIに移動

Navigate Toショートカット(Alt+`)で呼び出せるこのコマンドを使うと、ある型からこの型のインスタンスを取得可能なソリューション内のすべての場所(つまり、公開フィールドとプロパティ、メソッドの戻り値、出力パラメータなど)に移動できます。

シンボルに移動

シンボルに移動

Go to Symbolコマンドはソリューション全体でメソッド、フィールド、 その他のファイルメンバーを名前で検索します。 このコマンドは、Shift+Alt+Tを押すと呼び出せます。 シンボルに移動を含め、ReSharperの「Go to」コマンドはすべて、大文字と小文字を区別しないCamelHumpsをサポートしていることにご注意ください。 つまり、メンバー名に含まれる最初の文字とその後に続く任意の文字を入力することで、メンバーを素早く見つけられます。例えば、testFixedSizeBufferは、tfixsと入力すると見つけられます。

ベースに移動

ベースに移動

エディタ内で型やメソッドの使用箇所や宣言部にキャレットを置いて、Alt+Homeを押すと、階層を基本型やメソッドに移動できます。
また、メソッド宣言部の左側に表示される専用のガターアイコンを見て、あるメソッドがいつ、別のメソッドをオーバーライド、実装、または非表示にするかを確認できます。 メソッド階層を上に移動するには、アイコンをクリックしてください。

シンボル宣言部への移動

Go to Declaration(宣言に移動)

シンボルの宣言部に移動するには、任意のシンボル使用箇所にキャレットを置いてF12を押すか、Ctrlを押しながらシンボルを左クリックしてください。 ReSharperは、関連ソースファイル内の対応する型、メソッド、フィールド、ローカル変数の宣言部にジャンプします。 ライブラリのシンボルに関しては、ReSharperの設定に応じて、対応するエンティティがVisual Studioのオブジェクトブラウザ内、またはエディタ内にメタデータ表示かデコンパイル済みコードで表示されます。

使用箇所間の移動

Navigate Between Usages(使用箇所間の移動)

また、キャレットがすでにシンボルの宣言部にある状態で、宣言部に移動コマンドも呼び出せます。 宣言と使用箇所が1つずつある場合、それらを1つのショートカットだけで移動できます。 シンボルが複数箇所で使用されている場合、続けて宣言部に移動をクリックすると、さらに見つかったシンボルの使用箇所に、一度に1箇所ずつ移動できます。 使用箇所間の移動は、使用箇所の検索と同様のペインで支援されます。このペインは、見つかった使用箇所を列挙し、使用箇所間をマウスクリックで移動できる追加コントロールを含み、必要に応じて、見つかった使用箇所をすべて通常の結果を検索ウィンドウに流し込めます。

関連ファイルに移動

Ctrl+Alt+F7を押すと呼び出せるこの機能を使うと、現在のファイルから参照されている任意のファイルに何らかの方法で移動できます。 この機能はウェブサイトやアプリケーションで特に役立ちます。たとえば、あるウェブフォームからそのマスターページ、ユーザーコントロール、または参照先の画像に移動できます。 ASP.NET MVCアプリケーションの場合、この機能はビューとコントローラー間の相互移動を単純化しています。

ウェブ開発者が利用できるReSharperの高度なナビゲーションやその他の機能については、ASP.NETとASP.NET MVCツールをご覧ください。

近隣ファイルに移動

Go to File Nearby(近隣ファイルに移動)

Navigate Toショートカット(Alt+`)で呼び出せるこの機能を使うと、現在のファイル周辺のプロジェクト構造内を素早く移動できます。 開いたポップアップ内には、現在のファイルが所属するプロジェクト、同一ディレクトリ階層のフォルダとファイルを確認できます。また、それらのファイルへの移動や、新しいファイルまたはフォルダの作成も簡単です。

ライブラリシンボルで「シンボルファイルからのソース」ナビゲーションオプションを選択中

Navigation to Library Code(ライブラリコードへの移動)

どんなソリューションにも、独自のソースコードとライブラリへの参照部分の両方が存在します。 私たちは、これらのライブラリに、およびライブラリ内を、自分のソースコードでやるのとほぼ同じように移動できれば素晴らしいだろうと考えました。

一部の企業は、デバッグ情報ファイル(PDB)のソースサーバー機能を使用して、ソースコードの一部を公開しています。 その一方で、Microsoft社はこの技術を使用して、.NET Frameworkのソースコードへのアクセスを提供しています。 PDBが利用可能で、ReSharperがインストールされている場合、そのように保存されているソースに、それらがまるで自分ソリューションの一部であるかのようにアクセスできます。 特定の.NET Frameworkクラスに含まれているものを調べたい場合は、ReSharperはそれも表示いたします。

ソースサーバーを利用できなくても大丈夫です。ReSharperはメタデータからライブラリ構造を再構築できます。

以下、ソースサーバーを利用できる場合の動作を説明いたします。

  1. ライブラリシンボル上でAlt+`をクリックすると、Navigate Toが開き、ナビゲーションオプションの一覧が表示されます。
  2. ライブラリシンボルの外部ナビゲーションオプションを選択します。
  3. ReSharperはソースサーバーからPDBファイルをダウンロードします。
  4. ReSharperは選択したライブラリシンボルの宣言部を、あたかもあなたのソリューション内で定義されているかのように表示します。
シンボルの使用箇所を検索

Find Usages(使用箇所の検索)

Find Usages機能を使うと、コード内の任意のシンボルの使用箇所(型、メソッド、フィールドなど)を すばやく特定できます。 使用箇所を調べたいシンボルにキャレットを置き、Shift+F12を押すだけです。 複数言語が混在したプロジェクトでも、ReSharperをお使いいただくと複数言語にまたがって使用箇所を調べられます。

検索結果がFind Resultsウィンドウに表示され、階層 ごとに まとめられます。 このウィンドウから、キーボードかマウスを使って任意の使用箇所に直接移動できます。 結果を検索では、その他にも検索結果に対して次のような操作も行えます:

  • ソースコードのプレビュー
  • 壊れている、または未完成の使用箇所のハイライト表示
  • 読み取り箇所、書き込み箇所、呼び出し箇所、属性の使用箇所、ドキュメント内の使用箇所、およびその他の条件での絞り込み
  • 使用形態別およびカテゴリ別のグループ化
  • 最近使用した検索タブなど

結果を検索ウィンドウが開いている状態で、Ctrl+Alt+PageUp/PageDownを押すと、使用箇所間を移動できます(エディタからも実行可能)。

関連シンボルの使用箇所を検索

Find Usages Advanced

検索範囲と検索対象の使用箇所の種類を指定するには、Ctrl+Shift+Alt+F12で 呼び出せるFind Usages Advanced機能を 使ってください。

コンテキストに応じて、ソリューション内の検索範囲を正確に指定できます。また、参照しているライブラリ内を検索するかどうか、テキスト検索をするかどうか、プロパティの実装箇所や、検索対象のシンボルの動的参照を検索するかどうかも指定できます。

ファイル構造ビュー

File Structure(ファイル構造)

File Structureウィンドウはサポート対象のすべての 言語やファイルタイプで 使用できます。 C#またはVB.NETファイルでは、Ctrl+Alt+Fを押すだけでファイルに含まれる メソッド、 フィールド、クラス、リージョンを確認し、それらの宣言部に直接移動 できます。

ASP.NETの場合、File Structureを使うと現在開いているファイルのタブ、スクリプトレット、 コントロール、および他の構造要素を調べ、 それらの宣言部に直接移動できます。 本機能ならびにウェブ開発者向けのその他のナビゲーション機能については、ASP.NETとASP.NET MVCツールをご覧ください。

ビルドスクリプトでファイル構造を使うと、現在のスクリプトに含まれるプロパティやターゲットを確認できます。

また、このウィンドウでは、ドラッグアンドドロップするだけでファイル内の項目を再配置し、ナビゲーションアクションやリファクタリングを呼び出したり、領域の作成や削除を行えます。

File Structureウィンドウはエディタと完全に同期して います。 ファイルに 加えられた変更はすべて、File Structureに すぐに反映されます(逆も同様)。

Tabを使った構造ナビゲーション

Tabを使った構造ナビゲーション

ReSharperでは、ウェブブラウザでのナビゲーションと同様の方法で、TabShift+Tabキーを使って、コードの論理的な構成要素間を移動できます。

例えば、forステートメントを編集する際、Tabを押すと初期化子ステートメント、終了条件、反復ステートメントの順に選択されます。 Shift+Tabを押すと、これらが逆順で選択されます。

行内最初の非空白文字の前にカーソルがある場合は、Tabを使ってインデントを挿入できます。

詳細については、「ReSharperでTabがさらに便利になりました」をご覧ください。

ReSharperの中間言語ビューア

IL Viewer

中間言語ビューアを使うと、サードパーティ製ライブラリのコードをドリルダウンし、あなた独自のソースコードに対応する中間言語を表示できます(先にコンパイルしておく必要があります)。

IL Viewerの動作を確認するには、メニューからReSharper | Windows | IL Viewerを 選択してください。

ReSharperのスタックトレースエクスプローラー

Stack Trace Explorer

外部スタックトレース(バグレポートなどから)を受け取ったとき、それを Stack Trace Explorerにコピーペーストして 例外の発生箇所に移動できます。 スタックトレース内の行はハイパーリンク形式で表示されます。 Stack Trace Explorerを開くには、 スタックトレースを クリップボードにコピーしてCtrl+E, Tを押します。

ファイルに移動

ファイルに移動

Go to Fileを使うと、ソリューション内の 任意のファイルに 移動できます。 このコマンドはCtrl+Shift+Tのショートカットで呼び出すことができ、他の「Go to」コマンドで使用されているすべての検索テクニックやワイルドカードをサポートしています。

派生シンボルに移動

派生シンボルに移動

Alt+Endを押してこのコマンドを呼び出すと、派生型やメソッドに移動できます。 中間継承要素は太文字でハイライト表示されます。

ジェネリック置換要素に移動

ジェネリック置換要素に移動

Navigate Toのショートカットで呼び出せるこのコマンドは、選択したジェネリック型パラメータを置き換えるすべての型や、それぞれ置き換えたものが使用されているすべてのコードの場所を一覧で表示します。

シンボルの型に移動

Go to Type Declaration(型宣言に移動)

Ctrl+Shift+F11を押すと、変数、フィールド、パラメータが属する型の宣言部に移動できます。 ReSharperではソースコードの宣言部に切り替えたり、ライブラリ内の型の場合に、対応するシンボルをオブジェクトブラウザに表示したり、あるいはデコンパイル済みコードを表示したりします。

Go to Next Member/Tag

Alt+Upを押すと、C#やVB.NETコードファイルの次のファイルメンバー、またはXMLやXAMLファイルの次のタグに素早く移動できます。

Go to Previous Member/Tag

Go to Next Memberと同様に、この機能を使うと前のメンバーやタグに移動できます。 この機能はAlt+Downを 押すだけで実行できます。

シンボル使用箇所への移動

Go to Usage(使用箇所に移動)

Shift+Alt+F12を押すと、若干のシンボル使用箇所(privateフィールドなど)に素早く移動できます。 ツールウィンドウ全体を開かずに、ポップアップウィンドウに使用箇所を表示します。

しかし、ポップアップ内に一覧表示される シンボル使用箇所が多すぎる場合は、ポップアップの右上にある虫眼鏡アイコンを クリックすると、 Find Resultsウィンドウに使用箇所の一覧を表示させることができます。

ReSharperでの使用箇所のハイライト表示

Highlight Usages(使用箇所のハイライト表示)

現在ファイル内のシンボルの使用箇所をすべてハイライト表示するには、キャレットを任意のシンボル使用箇所に合わせて、Shift+Alt+F11を押すだけです。 また、名前空間のimportディレクティブや式の使用箇所もハイライト表示できます。 大きなファイルの場合、右側のマーカーバーを使ってハイライトされた使用箇所間を移動できます。
ReSharperはXAMLマークアップ内だけでなく、複数言語内でもシンボルの使用箇所も素早く検索してハイライト表示します。

ReSharperのパターンカタログにリストされたパターンの検索と置換

Structural search and replace(構造的検索と置換)

この機能を使うと、ReSharperが初期状態では検出できないコードの臭い(あやしいコード)や古いコードの検索パターンを作成し、それらを優れたコードに置き換えられます。 さらに、問題のあるコードを継続的に削除しやすくするため、カスタムコードインスペクションを作成したり、問題のあるコードに対してクイックフィックスを提供するようにReSharperをセットアップしたりできます。

これまでになく簡単にパターンの構築と優れた実践を行えるようになりました。 構造化されたパターンは、会社やチームのポリシー、カスタムフレームワーク、お好みのオープンソースライブラリやツールすべてに対応できます。 加えて、インポート・エクスポート機能を利用して最適なパターンを同僚の方々と共有したり、ReSharperのインストール環境間を移動したりできます。

型階層ビュー

Type Hierarchy(型の階層)

ReSharperでは、特定の型の継承階層を専用のウィンドウで表示できます。 このウィンドウには、基本型と選択した型の継承型を両方とも表示し、それらの間をワンクリックで移動できます。 階層内のすべてのノードについて、すべてのメンバーまたはポリモーフィックな メンバーのみを個別のプレビューペインに 表示できます。
型の階層ウィンドウを開くには、型名にキャレットを合わせて Ctrl+Alt+Hを押すか、ReSharper | View | Type Hierarchyを選択してください。

ReSharperのブックマーク

Bookmarks(ブックマーク)

ブックマークはシンプルながらも強力な機能です。単一のショートカットで数字付きのマーカーを置き、別のショートカットでマーカー位置にいつでも戻って来れます。 数字付きのブックマークは10件まで、数字なしのブックマークは無制限に作成できます。 ブックマークした位置はすべて、単一のポップアップウィンドウに表示され、コードスポット間を素早く移動できます。

ReSharperを使った最近のファイルの表示

View Recent Files(最近使用したファイルの表示)

Ctrl+を押すとポップアップウィンドウが開き、最近開いたファイルのリストが表示されます。そこから選択した任意の項目に移動できます。

ReSharperで最近編集したコード位置を表示

View Recent Edits (およびGo to Last Edit Location)

Recent EditsはRecent Filesによく似ており、最近変更したファイルやシンボルのリストをポップアップウィンドウに表示します。 少し前に現在の編集セッションを開始した場合は、再度開きたいファイル名を入力してリストの内容を絞り込みます。

また、Go to Last Edit Location Ctrl+Shift+Backspaceを使うとポップアップ 表示なしで最近変更したコードの場所にキャレットを 素早く移動できます。 続けてこのショートカットを入力すると、さらに詳細な編集履歴を確認できます。

To-doエクスプローラー

To-doエクスプローラー

To-do Explorerは、todonotebugタグでマークしたすべてのメモ書きや、 NotImplementedExceptionが 投げられたコードの位置を記録するのに 役立ちます。 To-do Explorerは ソリューション内のすべてのファイルからそのようなアイテムをすべて取得し、 単一のツールウィンドウにそれらを表示します。

独自のマーカーを使用してコードにコメントを残す場合はカスタムパターンを定義すれば、 To-do Explorerがそれらのマーカーも検索します。

プロセスエクスプローラー

プロセスエクスプローラー

Process Explorerウィンドウには現在実行中のプロセスが すべて表示され、それらのモジュールを 調べたり、.NETアセンブリであるプロセスをデコンパイルしたりできます。

ネイティブなプロセスやモジュールを表示または非表示にしたり、プロセスを階層表示にしたり選択できます。

リストを絞り込んで目的のモジュールやプロセスを見つけ、そのアセンブリを Assembly Explorerに追加して詳しく調査することができます。

ショートカットに関する注意

このページに記載されたキーボードショートカットはすべて、ReSharperデフォルトの「Visual Studio」キーマップのものです。 ReSharperの2種類のキーマップの詳細は、ReSharperのドキュメントをご覧ください。