大家好,亲爱的朋友们!作为 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