Sourcegraph:开源源代码搜索引擎

去年,代码搜索和导航工具“源图‘ 曾是 宣布开源. 由于它使浏览源代码更加方便,该工具本身开源对开发人员来说绝对是一大优势!

我们研究了它的功能,并试图找出它对那些经常浏览 GitHub、GitLab 等代码主机的开发人员有何帮助。

现在,随着它的新 3.10 版本,让我们来看看它的帮助和新功能。

源图功能

如上所述 他们的 GitHub 页面, Sourcegraph 具有以下特点:

  • 快速的全球代码搜索
  • 智能代码识别
  • GitHub、GitLab 等上的代码主机增强功能
  • 扩展 API,便于第三方集成

Sourcegraph 3.10 中的新功能

您会发现最新的 Sourcegraph 3.10 添加了重大改进和功能。

最新版本的主要亮点,如他们的 官方博文 是:

改进的搜索自动完成、本地 GitLab 集成以及搜索和替换自动化活动

让我们快速看一下 Sourcegraph 3.10 的变化:

  • Sourcegraph 现在为 GitLab 提供本机代码智能
  • 改进了搜索查询过滤器的自动完成功能
  • 创建跨存储库搜索和替换活动的能力
  • 基于 LSIF 的精确代码智能现在支持五种语言:Go、Typescript、Java、C++ 和 Python
  • 全自动发布测试流程

欲了解更多信息,您可以查看完整的 变更日志.

您可以在您的服务器上部署 Sourcegraph 并将其配置为与您或您组织的 Git 存储库一起使用。 完成后,您将获得一个搜索引擎,您可以在其中搜索所有代码。

但是如果你像我一样是一个孤独的开发者,你仍然可以在 GitHub 上使用 Sourcegraph 或者像 GitLab 这样的 GitHub 替代品。

我将快速向您展示如何使用 Sourcegraph 在 GitHub 上进行更好的代码导航。

在 GitHub 上使用 Sourcegraph

让我们看看如何使用 火狐 或者 铬合金 延期。 这是官方的扩展 .

Sourcegraph 官方扩展

在 GitHub 上打开的安全问题

在 6 月上半月,我向 Sourcegraph 报告了一个安全问题,该问题目前在 GitHub 上开放。 显然,该问题在一周前已修复,但尚未合并到主分支。 问题在于官方的 Firefox 扩展,它在安装期间要求访问所有网站,而应该有一个过滤器仅用于存储库站点,例如 GitHub、GitLab、BitBucket 等。 原来,由于一个 火狐漏洞 (现已修复),它无法在早期开发过程中合并。

这是安装了官方 Sourcegraph 扩展程序以及查看文件时的样子 维姆 GitHub上的存储库:

GitHub 上的 Sourcegraph 扩展

请注意我们如何在 GitHub 界面中看到新的 Sourcegraph 按钮,这要归功于已安装的扩展。 需要注意的一件事是,为了利用 Sourcegraph 的有用功能,甚至无需登录 GitHub 即可浏览托管代码及其存储库。

当你点击 “查看文件”,整个外观发生变化,文件在浏览器本身的全新界面中为您打开:

GitHub 上的 Sourcegraph 扩展

如果没有 Sourcegraph,如果您想查找具有特定格式的文件,例如本示例中的 C++ .cpp 文件,如果我们尝试在此存储库中使用 GitHub 自己的搜索引擎,则很难过滤和查看它们:

GitHub 上的 Sourcegraph 扩展

但是一旦你使用了这个扩展,看看你可以多么容易地在存储库中一次性查看所有这些文件:

GitHub 上的 Sourcegraph 扩展
GitHub 上的 Sourcegraph 扩展

Sourcegraph 可以非常智能地通过代码搜索缩小范围,如本视频所述:

Sourcegraph 中的代码智能由 长服务器,它可以识别您正在使用的编程语言的类型:

语言支持 Sourcegraph

在以下视频中了解有关其用途的更多信息:

使用 Sourcegraph 的额外提示

即使没有在浏览器上安装扩展程序,您也可以直接使用 Sourcegraph 作为 这里 在 GitHub 上的任何存储库之上,只需添加 “sourcegraph.com/” 作为存储库的前缀 网址.

例如,官方 Vim 存储库的 URL 是:

github.com/vim/vim

要通过 Sourcegraph 查看相同的内容,请修改以下 URL,您就可以开始了:

sourcegraph.com/github.com/vim/vim

我也用这个方法测试过 GitLab 它也在那里工作! 您也可以尝试其他存储库! 有一个非官方的扩展名为 在 Sourcegraph 上打开 使用这种方法 火狐铬合金.

Sourcegraph 开发人员在宣布其开源背后有一个总体计划:

使基本的代码智能无处不在(对于每种语言,在每个编辑器、代码主机等中)
让代码审查持续且智能
增加开源代码的数量和质量

以下是他们建议您可以为其做出贡献的方式 发展

因此,这是对 Sourcegraph 如何让开发人员的生活更轻松、更轻松的简要介绍。 您可能还想看看 Sourcetrail,这是一个最近开源的项目,它允许您可视化代码库。

您是开发人员吗? 您想在日常编程任务中采用这种新的开源工具吗? 在下面的评论部分让我们知道。