Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
機能コード検索を使用して、必要なコードをより速く見つけます。 この記事では、Azure DevOps 用の Code Search Marketplace 拡張機能を使用して、コードの種類やその他の関数を使用して、リポジトリ全体の検索を絞り込む方法について説明します。
前提 条件
| カテゴリ | 前提条件 |
|---|---|
| アクセス レベル | - コード検索を使用するには: 少なくとも 基本 アクセス。 - プライベート プロジェクト内のコードにアクセスするには:少なくとも Basic アクセス。 利害関係者アクセスにはコードは含まれません。 - パブリック プロジェクトのコードにアクセスするには:少なくとも 利害関係者 アクセス。 |
| 検索結果 | アクセスベースの結果: 組織全体またはコレクションを検索する場合、プロジェクト メンバーがアクセス権を持つ結果のみが一覧表示されます。 |
| カテゴリ | 要求事項 |
|---|---|
| アクセス レベル | - コード検索を使用するには: 少なくとも 基本 アクセス。 - プライベート プロジェクト内のコードにアクセスするには:少なくとも Basic アクセス。 利害関係者アクセスにはコードは含まれません。 |
| 検索結果 | アクセスベースの結果: 組織全体またはコレクションを検索する場合、プロジェクト メンバーがアクセス権を持つ結果のみが一覧表示されます。 |
| ツール | Code Search 拡張機能 |
コード検索のベスト プラクティス
- 広く始める: 広範な検索から始めてから、フィルター演算子を使用して、プロジェクト、リポジトリ、パス、ファイル名などを絞り込みます。
正確な用語がわからない場合は、ワイルドカードで検索範囲を広げ、ブール演算子で絞り込みます。ワイルドカードと 使用します。ブール演算子を - カーソルを合わせて詳細を確認する: コード項目に関する詳細情報を取得するには、その項目にカーソルを合わせ、ショートカット メニューを使用して、すべてのプロジェクトとファイルでそのテキストを検索します。
- トレース コード機能: ショートカット メニューを使用して、ファイル内の定義や参照などの関連項目を検索したり、検索結果でコードの動作を追跡したりできます。
-
コード型フィルターを使用する: API またはその他のコード要素の実装を検索するには、コード型フィルターを使用して、次のような特定の種類のコードを検索します。
- 定義
- 参照
- Functions
- コメント
- ストリングス
- 名前空間、およびその他
手記
フォークされたリポジトリのコード検索は機能しません。
特定の種類のコードを検索する関数
クエリをより迅速に作成するには、テキストを入力するときに、ドロップダウン リストから関数とキーワードを選択します。 [その他の を表示]を選択すると、すべてのオプションが表示されます。 必要に応じて、さまざまな関数を組み合わせることができます。
左側の列のフィルターを使用して、検索を絞り込むこともできます。 もっと表示する は、すべての関数とキーワードを表示します。
または、検索ボックスに関数とパラメーターを入力することもできます。 次の表に、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 |
プロジェクト、リポジトリ、パス、およびファイルを選択する関数
関数を使用すると、指定した場所、これらの場所内の特定の種類のファイル、または指定したファイル名に検索を簡単に絞り込めます。
proj、repo、または 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 |
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 です。 他のブランチのインデックスを作成するには、[プロジェクト設定] ページの [リポジトリ] セクションの [オプション] タブ移動します。
手記
既定では、コード検索では、リポジトリのメイン ブランチまたは既定のブランチで指定された文字列が検索されます。 ただし、特定の分岐のフィルターを指定することで、検索を絞り込むことができます。
TFVC プロジェクトを検索する
Team Foundation Version Control (TFVC) プロジェクトには、読み取り可能なフォルダーのみが表示されます。 他のプロジェクトやフォルダーは表示されません。 検索をフィルター処理するには、ツリーからフォルダーを選択します。
ヒント
コード検索では、プロジェクトやリポジトリ、検索したパスなどの最後の設定が保存されます。 別のスコープで検索する場合は、[すべてのリンクをクリア] を選択してチェック ボックスをオフにし、すべてのプロジェクトで検索します。 ターゲット ファイル内の最初の 100 件のヒットまたは一致が、結果ウィンドウのコード検索で強調表示されます。
REST API を使用してコードを検索する
API を使用して、この記事に記載されている機能を拡張または補完できます。 REST API を使用したコード検索の詳細については、「コード検索結果の取得」を参照してください。