Google 开放 Code Search 工具
Google 开发了 Code Search 工具,主要用于其内部庞大的代码库搜索。现在,Google 已将这一工具开放给公众,用于探索和理解其开源项目,如 TensorFlow、Go、Angular 等。
主要功能
- 代码搜索:开发者可以通过强大的搜索语言在代码库中快速查找函数、变量等,并定位其使用位置。
- 智能提示:支持输入时自动提示,提供对象类型、文件路径和所属仓库等信息。
- 跨引用信息:对于包含跨引用信息的仓库(如 Angular、Bazel、Go),Code Search 能够显示符号的引用位置。
技术支持
- 自定义搜索语言:支持代码感知的文本搜索,例如在 Go 文件中搜索函数
foo
可以使用lang:go:function:foo
。 - Kythe 项目:跨引用搜索依赖于 Google 的开源项目 Kythe,该项目旨在提供一种标准的、语言无关的交换机制,用于在不同开发工具之间共享信息。
- 内部处理流程:Google 内部通过一个流程将不同语言的图形结合,优化后用于提供跨引用服务,并每天多次更新数据以保持信息最新。
限制与替代方案
- 功能限制:公开的 Code Search 界面不包含 Google 工程师使用的所有功能,如自动代码分析、代码覆盖率、模糊测试集成等。
- 复制基础设施:开发者和组织可以使用 Kythe 和 TreeTide underhood 项目来复制类似的基础设施。
- 商业替代方案:SourceGraph 是 Kythe+TreeTide underhood 的商业替代品,被 Uber、CloudFlare 等大公司使用。
通过开放 Code Search,Google 为开发者提供了更便捷的代码探索和理解工具,同时也展示了其在代码搜索和跨引用技术方面的先进能力。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。