次の方法で共有


機能コード検索

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

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

前提 条件

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

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

  • 広く始める: 広範な検索から始めてから、フィルター演算子を使用して、プロジェクト、リポジトリ、パス、ファイル名などを絞り込みます。
  • ワイルドカードとブール演算子を 使用します。 正確な用語がわからない場合は、ワイルドカードで検索範囲を広げ、ブール演算子で絞り込みます。
  • カーソルを合わせて詳細を確認する: コード項目に関する詳細情報を取得するには、その項目にカーソルを合わせ、ショートカット メニューを使用して、すべてのプロジェクトとファイルでそのテキストを検索します。
  • トレース コード機能: ショートカット メニューを使用して、ファイル内の定義や参照などの関連項目を検索したり、検索結果でコードの動作を追跡したりできます。
  • コード型フィルターを使用する: API またはその他のコード要素の実装を検索するには、コード型フィルターを使用して、次のような特定の種類のコードを検索します。
    • 定義
    • 参照
    • 関数
    • コメント
    • ストリングス
    • 名前空間、およびその他

手記

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

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

クエリをより迅速に作成するには、テキストを入力するときに、ドロップダウン リストから関数とキーワードを選択します。 [その他の を表示]を選択すると、すべてのオプションが表示されます。 必要に応じて、さまざまな関数を組み合わせることができます。

左側の列のフィルターを使用して、検索を絞り込むこともできます。 もっと表示する は、すべての関数とキーワードを表示します。

または、検索ボックスに関数とパラメーターを入力することもできます。 次の表に、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
定義 def:findThis
デストラクターです。 dtor:findThisMerged with method:
列挙子 enum:findThis
Extern extern:findThisDeprecated in July 2019
フィールド field:findThis
フレンド関数 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
インターフェイス インターフェイス:findThis
マクロ macro:findThis
マクロ定義 マクロ定義:findThisMerged with macro:
マクロ リファレンス macroref:findThisMerged with macro:
方式 method:findThis
メソッド宣言 methoddecl:findThisMerged with method:
メソッドの定義 methoddef:findThisMerged with method:
Namespace 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:findThis
Typedef typedef:findThisMerged with type:
Union union:findThisDeprecated in July 2019

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

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

用途
Fabrikam プロジェクトで QueueJobsNow 単語のすべての出現箇所を検索します。 QueueJobsNow proj:Fabrikam
Contoso リポジトリ内の QueueJobsNow 単語のすべての出現箇所を検索します。 QueueJobsNow repo:Contoso
パス VisualStudio/Services/Framework とそのサブパス内で出現する単語 QueueJobsNow をすべて検索します。 QueueJobsNow path:VisualStudio/Services/Framework
パス */Doc*/Framework/* および */Doc*/*/*/Framework/* とそのサブパスで出現する単語 QueueJobsNow をすべて検索します。 glob パターン (**) は、複数のセグメントにわたって 0 個以上の文字と一致します。 たとえば、path:**/Doc**/Framework は abc/DocTest/gh/ijk/mnop/Framework/ と一致します QueueJobsNow path:**/Doc**/Framework
QueueJobsNow のすべての出現箇所を、パス */Doc*/Framework/* とそのサブパスおよびファイル名 Test*.txt の中で検索します (Globbing パターン ** を使用)。 たとえば、パス **/Doc**/Framework/**/Test*.txt は abc/def/DocA/gh/Framework/TestMisc.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

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

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

詳細については、「検索の開始方法」を参照してください。

その他のコード検索操作

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

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

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

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

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

手記

既定では、コード検索では、リポジトリのメイン ブランチまたは既定のブランチで指定された文字列が検索されます。 ただし、特定の分岐のフィルターを指定することで、検索を絞り込むことができます。

構成用の Git ブランチを示すスクリーンショット。

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

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

ヒント

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

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

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

次の手順