如何在全球范围内搜索Scaladoc中的方法?

时间:2011-07-14 21:47:21

标签: scala scaladoc

我是否有可能通过scala doc在全球范围内搜索类,特征或对象中的方法?示例:我有一个方法名称,我不知道它属于哪个类,所以我可以在一些scaladoc搜索中键入它,它将显示包含具有给定名称的方法的类。 (PS:我会添加标签scaladoc,但显然我不值得......)

3 个答案:

答案 0 :(得分:10)

我认为没有一种通用的内置方法。因此,如果scaladoc在线,我会使用我的朋友Google。例如,要在scala API中搜索一个名为left的方法,我使用查询:

"def left" site:http://www.scala-lang.org/api/current/

如果它在我的硬盘上,我使用grep。

答案 1 :(得分:10)

<强> colladoc

colladoc tool对scaladocs的搜索界面比标准的scaladoc工具更有用。

您可以通过在搜索字符串前加“def”来限制搜索方法名称,如“def implicitly”。如果您点击搜索框旁边的放大镜,使用空搜索字符串,您将获得以下方便的示例查询列表:

  
      
  • any搜索其名称,定义或评论中包含 any 一词的所有内容
  •   
  • any_搜索以任何
  • 开头的所有内容   
  • //_any搜索包含以 any
  • 结尾的单词的所有评论   
  • class AnyRef搜索名称为AnyRef
  • 的所有类   
  • trait _搜索所有特征
  •   
  • object _搜索所有对象
  •   
  • class A_ || class B_搜索所有以A或B开头的类
  •   
  • class _ extends _ with _搜索扩展类并实现特征的所有类
  •   
  • var _: Int搜索Int类型的所有值或变量,vars显示在val之前
  •   
  • def toString搜索名称为toString
  • 的所有方法   
  • def toString : String搜索名称为toString且返回类型为String
  • 的所有方法   
  • def _(_) : Boolean使用一个参数和returnType Boolean
  • 搜索所有方法   
  • def _(Int, _)搜索带参数的所有方法,第一个是Int
  • 类型   
  • def _(_, *)使用一个或多个参数搜索所有方法
  •   
  • def _(Iterable[_]):Int搜索所有采用Iterable并返回Int
  • 的方法   
  • (Iterable[_]) => Int与上述等价,lambda语法也可用于搜索方法。
  •   
  • => (_, _)搜索返回带有两个元素的元组的所有方法。
  •   
  • def _((_) => _)搜索所有有一个作为第一个参数的方法,该方法接受并返回任何值。
  •   

不幸的是,colladoc的搜索结果可能令人生畏。如果成员由于继承而存在于许多特征/类中(例如集合API中的sum方法),则结果中列出了所有类。

scaladoc按字母顺序索引

scaladoc本身没有这样的搜索,但是有一个包含类/对象/特征成员的字母索引。只需点击左上角搜索栏下方的一个字母,您就会看到一个列表,其中包含以该字母开头的类,对象,特征和成员(或符号,如果您点击链接)。然后,您可以使用浏览器的查找功能查找您感兴趣的成员。

答案 2 :(得分:6)

我使用搜索框左下角的字母索引。如果有适当的搜索功能会很好。

如果文档以Windows帮助格式as they are for Java提供,这比 javadoc更方便 ,并且允许您搜索延迟几乎为零的方法,那也不错。