代码搜索现已开放浏览谷歌的开源项目

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 为开发者提供了更便捷的代码探索和理解工具,同时也展示了其在代码搜索和跨引用技术方面的先进能力。

阅读 17
0 条评论