機能コードの検索

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

機能コード検索を使用して、必要なコードをより速く見つけます。 この記事では、Azure DevOps 用の Code Search Marketplace 拡張機能を使用して、コードの種類やその他の関数を 使用して、リポジトリ全体で検索 を絞り込む方法について説明します。

前提条件

  • コード検索のインストール
  • コード検索を使用するには、少なくとも Basic アクセス権が必要です。
  • 利害関係者アクセス権を持つユーザーはコードにアクセスできないため、コードを検索できません。
  • パブリック プロジェクトの利害関係者アクセス権を持つユーザーは、コードを検索できるように、コードへのフル アクセス権を持っています。 プライベート プロジェクトのコードにアクセスするには、少なくとも Basic アクセス権が必要です。
  • 組織全体またはコレクションを検索する場合、プロジェクト メンバーがアクセス権を持つ結果のみが一覧表示されます。

コード検索のベスト プラクティス

  • 広範な検索から始めて、フィルター演算子を使用して、プロジェクト、リポジトリ、パス、ファイル名などを絞り込みます。
  • 正確な用語がわからない場合は、ワイルドカードを使用して検索演算子とブール演算子を展開して絞り込みます。
  • コード項目の詳細を取得するには、その上にマウス ポインターを置き、ショートカット メニューを使用して、すべてのプロジェクトとファイルでそのテキストを検索します。
  • コードの動作を追跡するには、ショートカット メニューを使用して、ファイルや検索結果の定義や参照などの関連項目を検索します。
  • API またはその他のコード要素の実装を見つけるには、コード型フィルターを使用して、次のような特定の種類のコードを検索します。
    • 定義
    • references
    • functions
    • comments
    • 文字列
    • 名前空間など。

Note

フォークされたリポジトリのコード検索は機能しません。

特定の種類のコードを検索する関数

クエリをすばやく作成するには、入力時にドロップダウン リストから関数とキーワード (keyword)を選択します。 [詳細を表示] を選択すると、すべてのオプションが表示されます。 必要に応じて、さまざまな関数を組み合わせることができます。

左側の列のフィルターを使用して、検索を絞り込むこともできます。 さらに表示すると、すべての関数とキーワード (keyword)が表示されます。

または、検索ボックスに関数とパラメーターを入力することもできます。 次の表に、C#、C、C++、Java、および Visual Basic.NET コードで特定の型またはメンバーを検索するための関数を示します。

findThis... として表示されるコードを検索するには ...引数 arg:findThis を検索する
引数 arg:findThisDeprecated in July 2019
基本型 basetype:findThis
関数の呼び出し caller:findThisDeprecated in July 2019
クラス定義または宣言 class:findThis
クラス宣言 classdecl:findThisMerged with class:
クラス定義 classdef:findThisMerged with class:
コメント comment:findThis
コンストラクター ctor:findThisMerged with method:
宣言 decl:findThis
Definition def:findThis
デストラクターです。 dtor:findThisMerged with method:
列挙子 enum:findThis
Extern extern:findThisDeprecated in July 2019
フィールド field:findThis
Friend 関数 friend:findThisDeprecated in July 2019
機能 func:findThisMerged with method:
関数宣言 funcdecl:findThisMerged with method:
関数定義 funcdef:findThisMerged with method:
グローバル global:findThisDeprecated in July 2019
ヘッダー header:findThisDeprecated in July 2019
Interface interface:findThis
マクロ macro:findThis
マクロ定義 macrodef:findThisMerged with macro:
マクロ リファレンス macroref:findThisMerged with macro:
メソッド method:findThis
メソッド宣言 methoddecl:findThisMerged with method:
メソッドの定義 methoddef:findThisMerged with method:
名前空間 namespace:findThis
プロパティ prop:findThis
リファレンス ref:findThis
文字列リテラル strlit:findThis
構造体 struct:findThisMerged with type:
構造体宣言 structdecl:findThisMerged with type:
構造体の定義 structdef:findThisMerged with type:
テンプレート引数 tmplarg:findThisDeprecated in July 2019
テンプレートの仕様 tmplspec:findThisDeprecated in July 2019
Type type:findThis
Typedef typedef:findThisMerged with type:
Union (結合) union:findThisDeprecated in July 2019

プロジェクト、リポジトリ、パス、およびファイルを選択する関数

関数を使用すると、指定した場所、これらの場所内の特定の種類のファイル、または指定したファイル名に検索を簡単に絞り込めます。 、またはpathフィルターを使用して、検索を特定の場所にprojrepo絞り込みます。 必要に応じて、次の関数を組み合わせて一致させます。

使用方法
Fabrikam プロジェクトで QueueJobsNow という単語のすべての出現箇所を検索します。 QueueJobsNow proj:Fabrikam
Contoso リポジトリで QueueJobsNow という単語が出現するすべての箇所を検索します。 QueueJobsNow repo:Contoso
VisualStudio/Services/Framework のパスとそのサブパスで、QueueJobsNow という単語のすべての出現箇所を検索します。 QueueJobsNow path:VisualStudio/Services/Framework
パス */Doc*/Framework/* と */Doc*/*/*/Framework/* とそのサブパスで、QueueJobsNow という単語が出現するすべての箇所を検索します。 Globbing Pattern (**) は、複数のセグメントにわたって 0 個以上の文字と一致します。 たとえば、path:**/Doc**/Framework も abc/DocTest/gh/ijk/mnop/Framework と一致します/ QueueJobsNow path:**/Doc**/Framework
パス */Doc*/Framework/* とそのサブパスとファイル名 Test*.txt で QueueJobsNow という単語のすべての出現箇所を検索します (Globbing パターン **を使用)。 たとえば、path:**/Doc**/Framework/**/Test*.txt は abc/def/Doc A/gh/Framework/テストのその他にも一致します。Txt QueueJobsNow path:**/Doc**/Framework/**/Test*.txt
スペースが含まれている場合は、フィルターの引数を二重引用符で囲みます。 QueueJobsNow path:"VisualStudio/Windows Phones and Devices/Services"
ファイル名が queueRegister で始まるすべてのファイルで、QueueJobsNow という単語のすべての出現箇所を検索します QueueJobsNow file:queueRegister*
拡張子のない QueueRegister という名前のすべてのファイルを検索します。 拡張子のないファイルを検索するには、引用符を使用します。 file:"queueRegister"
C# ソース ファイルでのみ QueueJobsNow という単語が出現するすべての箇所を検索します。 ファイル型関数を含まないプレーンテキスト検索文字列は、文字列がファイル名の一部と一致するファイルも検索します。 QueueJobsNow ext:cs

コード検索を使用すると、以前の結果に基づいて対話的に検索を拡張できます。 たとえば、コードをトレースまたはデバッグするときに、検索を関連ファイルに拡大できます。

ファイル内の用語を右クリックし、同じ用語を持つ他のファイルの新しい検索を開始します。 テキストとして検索することも、オブジェクト名の場合は定義または参照として検索することもできます。

次の検索機能の詳細については、「検索の開始」を参照してください

  • Keyword
  • 完全一致
  • ワイルドカード
  • ブール演算子
  • 近接

その他のコード検索操作

その他のコード検索機能を次に示します。 C#、C、C++、Java、および Visual Basic.NET ファイルでコードの種類を検索できます。 検索結果を新しいタブで開くには、メイン検索ボックスから Ctrl Enter キー + を押します。 Google Chrome で新しいタブに切り替えるには、Ctrl キーを押しながら + Enter キーを押 + します。

使用方法
すべてのコメントを検索する History:Keyword
コード内の "ToDo" コメントのすべてのインスタンスを検索する 選択 comment: して入力する todo
特定の場所 (特定のパス内など) で検索する 次のような検索文字列を使用する Driver path:MyShuttle/Server
名前またはファイル拡張子だけでファイルを検索する Driver file:GreenCabs.cs. 検索文字列 error ext:resx は、コード内のすべてのエラー文字列を確認する場合に便利です。 プレーンテキスト検索文字列がファイル名の一部と一致する場合でも、ファイルは見つかったファイルの一覧に表示されます。 この検索は、特定のファイルの種類の関数を一致させることなく機能します。

Git プロジェクトとリポジトリを検索する

Git プロジェクトにはリポジトリの一覧があります。 検索を展開するには、プロジェクトボックスとリポジトリボックスをチェックします。 すべてのプロジェクトまたは複数のプロジェクトを検索することも、プロジェクトとリポジトリを少なくすることもできます。 プロジェクトまたはリポジトリが多数ある場合は、[詳細を表示] を選択してすべてを表示します。

コード検索では、Git リポジトリ内のさまざまなブランチのインデックスを作成できます。 既定では、Git リポジトリの既定のブランチ内のファイルにのみインデックスが作成されます。 通常、既定のブランチはメイン。 他のブランチのインデックスを作成するには、プロジェクト設定ページ[リポジトリ] セクションの [オプション] タブに移動します。

Screenshot showing Git branches for configuration.

TFVC プロジェクトを検索する

TFVC プロジェクトには、読み取ることができるフォルダーのみが表示されます。 他のプロジェクトやフォルダーは表示されません。 検索をフィルター処理するには、ツリーからフォルダーを選択します。

ヒント

コード検索では、プロジェクトやリポジトリ、検索したパスなどの最後の設定が保存されます。 別のスコープで検索する場合は、[すべてのリンクをクリア] を選択してチェックボックスをクリアし、すべてのプロジェクトを検索します。 ターゲット ファイル内の最初の 100 件のヒットまたは一致が、結果ウィンドウのコード検索によって強調表示されます。

REST API を使用してコードを検索する

API を使用して、この記事に記載されている機能を拡張または補完できます。 REST API を使用したコード検索の詳細については、「コード検索結果のフェッチ」を参照してください

次のステップ