大家好,親愛的朋友們!作為 GitHub 新功能的愛好者,我非常有興趣知道很快我們都將能夠快速有效地搜尋 GitHub 程式碼庫。這可能非常方便,特別是當您需要找到一種複雜的方法來使用工具時。 這尤其與 GitHub 未來的競爭對手在俄羅斯開設這一事實產生了共鳴。因此,GitHub絕對不應該固步自封,儘管他們毫無疑問是市場的領導者。我們需要繼續前進和發展,否則不到一個小時,競爭對手就會迎頭趕上並橫掃而去。並讓它看起來不那麼令人難以置信。舉個例子:有多少人還在使用諾基亞手機?誰知道他們製造了手機?曾經,它們簡直是遙不可及、無可爭議的市場領導者……而現在它們卻出現在統計錯誤的領域。
第一印象
GitHub 創建了一個項目,您可以在其中搜尋、導航和分析您的程式碼以及 GitHub 上發布的數十億行程式碼。值得注意的是,搜尋是可擴展的、快速且準確的。它是專門為程式碼搜尋從頭開始創建的。導航適用於 10 種主要程式語言,無需設定(我們希望這個清單將來會成長)。您可以使用正則表達式進行搜索,這非常酷。也可以使用其他過濾器:- 按組織劃分;
- 透過程式語言;
- 由特定所有者;
- 按檔案副檔名;
- 透過正規表示式。
讓我們更詳細地討論搜索
很有趣,自己看一下,試試看:是不是像他們說的那麼方便?目前,此功能尚未公開提供,您可以使用連結將自己新增至等待名單。我們把所有的點都填在那裡,問題很簡單,我這裡就不描述了。結果,我們被添加到等待名單中並繼續前進。結果,答案將是這樣的: 你只需要等待。只要我加入,我一定會把一切都給你看。不要拖延,添加你自己,以便你稍後可以弄清楚並使用它來讓你高興)當然,遺憾的是你不能立即嘗試這個新工具,所以讓我們分析一下他們的文檔並在更詳細地說明我們如何在工作中使用此工具。現在關於搜尋。它將使用在我正在編寫的庫中有意義的類別和構造。這會讓我更清楚、更容易,我希望你也能更輕鬆。基本搜尋
ImageComparison是最簡單的搜索,它可以使用檔案名稱及其內容中的查詢進行精確搜索。這裡一切看起來都很簡單。如果我們想透過類別名稱清楚地找到它的聲明位置和使用位置,這樣的搜尋將幫助我們做到這一點。當您輸入以空格分隔的多個單字時,結果將分別搜尋所有這些單字: Image Comparison ,這表示它將尋找Image和Comparison的檔案和程式碼。如果您需要搜尋包含空格的字串,那麼您只需要使用引號。例如: “ImageComparison Comparison = new ImageComparison()”,然後搜尋將符合整個字串。為了轉義,我們一如既往地使用“\”。到目前為止,一切都是直觀的,而且通常就是這樣做的。此外,我們可以向此基本搜尋新增過濾器。因此,讓我們逐一討論。這些將是我們已經建立的篩選器的邏輯「AND」。按存儲庫過濾
一旦我們的基本過濾器準備好了,我們就可以縮小搜索範圍並按特定存儲庫進行搜索,這非常方便。你不需要尋找類別位於哪個資料夾,你可以直接寫:
倉庫:romankh3/image-comparison ImageComparisonResult
我們需要指定repo:${user_name}/${repo_name}。您也可以透過簡單地新增 OR 來搜尋多個儲存庫:
倉庫:romankh3/image-comparison 或 倉庫:romankh3/usage-image-comparison ImageComparisonResult
正如 GitHub 上所述,目前他們不支援在名稱被指定為正規表示式的儲存庫中進行搜尋...這意味著他們計劃添加這樣的功能,並且意味著該專案不會停留在聲明的位置功能,並將進一步發展。
按組織過濾
以組織或使用者搜尋的方式與按儲存庫搜尋的方式完全相同,只是關鍵字不是repo,而是org:
org:romankh3 影像比較
然後搜尋將遍歷使用者/組織的所有儲存庫。
按程式語言過濾
您也可以指定以特定程式語言搜尋檔案。這裡的構造與儲存庫和組織相同,只是關鍵字是language:
語言:java ImageComparison
就像儲存庫一樣,它支援使用 OR 關鍵字同時以多種語言進行搜尋:
語言:java 或 語言:ruby ImageComparison
可以在此處 找到 GitHub 支援的語言的完整清單。我想知道BrainFuck有嗎?😂
按檔案路徑過濾
專案中的每個檔案都有自己的路徑,您也可以透過新增篩選器來搜尋它。例如,有一個檔案ImageComparisonResult,它的路徑為:
src/main/java/com/github/romankh3/image/comparison/model/ImageComparisonResult.java
因此,要查找路徑以src/main/java/com/github/romankh3/image開頭的所有類,您需要:
路徑:src/main/java/com/github/romankh3/image
當我們不希望測試類別被排除在搜尋結果之外的情況下,這非常有用。反之亦然,僅測試。這使您的搜尋更加靈活。可以使用正規表示式指定按檔案路徑的篩選器。例如,我們需要找到
路徑:src/*/*.js
布林運算
當然,所有過濾器建構的最終目的是使用布林運算將這些內容組合在一起。為此,我們有 AND、OR、AND NOT。我想這對我們來說應該足夠了。例如,讓我們建立一個複雜的搜尋查詢:針對特定使用者/組織的 Java 或 Kotlin 生產程式碼:
repo:romankh3 AND (語言:java OR 語言:kotlin) AND NOT 路徑:*/test/*
我告訴你,這簡直令人難以置信。檢索請求寫得如此簡單、快速、簡潔、清晰,檢索和閱讀請求不會有任何問題。
GO TO FULL VERSION