8款源码搜索引擎,让你找到更适合你的源码。
1.Ohloh
Ohloh Code是最大且非常全面的源码搜索引擎,根据FOSS目录来看,其拥有超过10亿行代码且在不断更新,它不仅是免费的,而且还可以通过社区进行免费编辑。通过搜索可以索引到所有的文本文件,并且对43种编程语言都带有语法提示功能。此外,搜索语法非常灵活,可以为你查找到各种不同类型的类。搜索引擎目前不支持正则表达式。
2.Krugle
Krugle是一个开源的搜索门户,基本上主流的开源代码都有收录,比如Apache、JavaDocs、SourceForge 等。你还可以搜索使用C++、Java、Perl、SQL、Ruby、XML、HTML等语言编写代码。Krugle还有一个非常高级的搜索功能,帮你快速定位到正确的API、库、示例代码或文档。在搜索结果页面,你可以直接浏览项目源码。
SearchCode从Github、BitBucket、CodePlex、SourceForge、Fedora等代码仓库里筛选了近160亿行开源代码,代码和文档由一位单独的开发者维护。你可以使用文件扩展、特定代码库名字、URL、正则表达式、特殊字符等过滤器对源码进行过滤,以便搜到你想要的代码。具体示例和文档代码搜索支持,可以参照这个例子。
NerdyData.com是一个可以搜索网页源代码中内容的搜索引擎,它已经拥有超过140万个Web代码索引,如果你是一名Web开发人员,你可以搜索到HTML标记、JavaScript代码或CSS样式代码段。NerdyData的目标不仅仅是做一个简单的源码搜索引擎,他们也在围绕Web开发流程来开发一系列功能。
当涉及到搜索特殊符号时,谷歌和其他搜索引擎并不是最佳选择。例如谷歌,去掉了许多标点符号和特殊符号。如果你想搜索含有特殊字符的变量和错误代码,使用普通的搜索引擎可能不会返回你期望的结果。Symbol Hound的出现解决了这一问题。
6.Merobase
Merobase搜索引擎与其他不一样,它并不是用来搜索源码,而是帮你搜索和定位软件组件,可以搜索Java、C++、C#等语言编写的组件。Merobase还可以搜索基于查询的简单文本接口,你也可以搜索基于函数、面向对象、名称、测试驱动的查询,这也是它的一大亮点。
它是一款能够根据语义来把Web上的开源代码编入索引的代码搜索浏览工具。你可以从代码仓库和安装包甚至是函数里搜索代码,同时也可以直接点击被完全创建了链接的代码来阅读文档、跳转到变量定义或者马上找到可用的Demo。总而言之,你可以在你的web浏览器上完成这一切,而不需要配置任何编辑器。
这里在Sourcegraph中搜索docker的源码:将鼠标放在函数名上点击一下就会出现代码框,点击Go to definition即可跳转到函数定义的地方。非常方便。
Quinn Slack 和 Beyang Liu 开发 Sourcegraph 的初衷和很多程序员遇到的困难一样,他们发现大量的时间都被浪费在阅读了缺乏文档的代码上,于是决定开发这一款工具来帮助程序员更好的阅读和理解代码。
你是代码仓库的作者吗?
如果你是某个开源项目或者代码仓库的作者,你最好让你的代码仓库可以支持Sourcegraph。这样就意味着Sourcegraph能够分析你的代码并且为它们建立索引,项目的贡献者和使用者就可以在Soucegraph上使用和浏览你的代码了。这些特性可以帮助你的用户节省大量可能会被花费在寻找和理解代码上的时间。
根据语义搜索项目、函数或者安装包
Sourcegraph 采用语义分级来对函数建立索引,这意味着它使用和编译器一样的方法来解析和理解代码。正因为这种索引方式,才能支撑语义搜索和搜寻可用Demo这些特性。Sourcegraph 目前已经支持 Go ,Java 和 Python,同时对 JavaScript、Ruby 和 Haskell 的支持也正在紧锣密鼓地测试中。所以你现在可以试着搜索一些比较火热的项目比如 Docker、the AWS Java SDK, Kubernetes, redis-py,或者你自己的项目等等。
可以互动的代码片段
你可以在 Sourcegraph 的UI界面上快速高效地浏览开源代码库,但有时候想将代码从网页上分享出去。比如说你可能想要将某个代码块嵌入到个人的博客当中或者回答一个论坛的问题,就可以点击出一个代码块,然后点击上图的 Embed 按钮就会生成一段脚本,支持直接贴在博客中。下面是预览效果:
8、Grepcode
这是一个面向于java开发人员的网站,在这里你可以通过java的projects、classes等各种关键字在线查看它对应的源码,知道对应的project、classes等信息。
更方便的是,能提供非常多不同版本的源码在线查看、jar包、源码jar包、doc的下载。
同样,你也可以之间使用xxx-1.1.1.jar类似这样的名字直接找到对应的jar包,从而下载
本文出自:https://blog.csdn.net/langb2014/article/details/49558435
文章评论