共用方式為


功能代碼搜尋

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

使用功能程式代碼搜尋,尋找您需要的更快速程序代碼。 本文說明如何使用程式代碼類型和適用於 Azure DevOps 的程式 代碼搜尋 Marketplace 擴充功能,在存放庫之間精簡搜尋。

必要條件

  • 存取層級:
    • 基本存取:
      • 若要使用程式代碼搜尋,您必須至少有基本存取權。
      • 若要存取私人專案中的程式代碼,您必須至少有基本存取權。
    • 項目關係人存取:
      • 具有項目關係人存取權的用戶無法存取程式代碼,因此無法搜尋程式代碼。
      • 具有公用專案項目關係人存取權的使用者具有程式代碼的完整存取權,因此他們可以搜尋程序代碼。
  • 搜尋結果:
    • 存取型結果: 當您搜尋整個組織或集合時,只會列出項目成員具有存取權的結果。
  • 存取層級:
    • 基本存取:
      • 若要使用程式代碼搜尋,您必須至少有基本存取權。
      • 若要存取私人專案中的程式代碼,您必須至少有基本存取權。
    • 項目關係人存取:
      • 具有項目關係人存取權的用戶無法存取程式代碼,因此無法搜尋程式代碼。
  • 搜尋結果:
    • 存取型結果: 當您搜尋整個組織或集合時,只會列出項目成員具有存取權的結果。
  • 工具

程式代碼搜尋最佳做法

  • 開始廣泛: 從廣泛的搜尋開始,然後使用篩選運算符,依專案、存放庫、路徑、檔名等縮小範圍。
  • 使用通配符和布爾運算符如果您不知道確切的字詞,請使用通配符來展開搜尋和布爾運算符來精簡。
  • 暫留以取得詳細資訊: 若要取得程式碼專案的詳細資訊,請將滑鼠停留在它上方,並使用快捷方式功能表來搜尋所有專案和檔案中的該文字。
  • 追蹤程式代碼功能: 使用快捷方式功能表來搜尋檔案或搜尋結果中的定義和參考等相關專案,以追蹤程式代碼的運作方式。
  • 使用程式代碼類型篩選: 若要尋找 API 或其他程式碼項目的實作,請使用程式代碼類型篩選來搜尋特定類型的程式代碼,例如:
    • 定義
    • 參考資料
    • 函式
    • 註解
    • 字串
    • 命名空間等等

注意

程式代碼搜尋不適用於分岔存放庫。

尋找特定程式代碼類型的函式

若要更快建立查詢,請在輸入文字時,從下拉式清單中選擇函式和關鍵詞。 選取 [ 顯示更多 ] 以查看所有選項。 您可以視需要合併不同的函式。

您也可以使用左側數據行的篩選來縮小搜尋範圍。 顯示更多 顯示所有函式和關鍵詞。

或者,您可以在搜尋方塊中輸入函式和參數。 下表列出在 C#、C、C++、Java 和 Visual Basic.NET 程式代碼中尋找特定類型或成員的函式。

若要尋找 find 這會顯示為 ... 的程式代碼 ...搜尋自變數 arg:findThis
Argument arg:findThis Deprecated in July 2019
基底類型 basetype:findThis
呼叫函式 caller:findThis Deprecated in July 2019
類別定義或宣告 class:findThis
類別宣告 classdecl:findThis Merged with class:
類別定義 classdef:findThis Merged with class:
註解 comment:findThis
建構函式 ctor:findThis Merged with method:
宣告 decl:findThis
定義 def:findThis
解構函式 dtor:findThis Merged with method:
列舉值 enum:findThis
Extern extern:findThis Deprecated in July 2019
欄位 field:findThis
Friend 函式 friend:findThis Deprecated in July 2019
函式 func:findThis Merged with method:
函式宣告 funcdecl:findThis Merged with method:
函式定義 funcdef:findThis Merged with method:
全球 global:findThis Deprecated in July 2019
頁首 header:findThis Deprecated in July 2019
介面 interface:findThis
Macro 巨集:findThis
巨集定義 macrodef:findThis Merged with macro:
宏參考 macroref:findThis Merged with macro:
方法 method:findThis
方法宣告 methoddecl:findThis Merged with method:
方法定義 methoddef:findThis Merged with method:
Namespace namespace:findThis
屬性 prop:findThis
參考 ref:findThis
字串常值 strlit:findThis
結構 struct:findThis Merged with type:
結構宣告 structdecl:findThis Merged with type:
結構定義 structdef:findThis Merged with type:
範本自變數 tmplarg:findThis Deprecated in July 2019
範本規格 tmplspec:findThis Deprecated in July 2019
類型 type:findThis
Typedef typedef:findThis Merged with type:
Union union:findThis Deprecated in July 2019

選取專案、存放庫、路徑和檔案的函式

函式可讓您輕鬆地將搜尋範圍縮小到指定的位置、這些位置內的特定檔案類型,或指定的檔名。 使用 projrepopath 篩選,將搜尋範圍縮小至特定位置。 視需要混合並比對下列函式。

使用方式 範例
在 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 (**) 會比對多個區段的零個或多個字元。 例如,path:**/Doc**/Framework 也符合 abc/DocTest/gh/ijk/mnop/Framework/ QueueJobsNow path:**/Doc**/Framework
路徑 */Doc*/Framework/* 中尋找所有出現的 QueueJobsNow 一詞,以及其子路徑和檔名 Test*.txt (使用 Globbing 模式 **)。 例如,path:**/Doc**/Framework/**/Test*.txt也符合 abc/def/Doc A/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 + Enter。

使用方式 範例
尋找所有批注 History:Keyword
在您的程式代碼中尋找 「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 進行程式碼搜尋的資訊,請參閱 擷取程式代碼搜尋結果

下一步