19

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

4

3 回答 3

10

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

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

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

于 2011-07-14T22:33:20.960 回答
10

科拉多克

与标准的scaladoc 工具相比, colladoc 工具具有更有用的 scaladocs 搜索界面。

您可以通过在搜索字符串前加上“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 显示在 vals 之前
  • 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 的搜索结果可能令人生畏。如果一个成员由于继承而存在于许多特征/类中(例如,sum集合 API 中的方法),则所有类都列在结果中。

scaladoc 字母索引

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

于 2011-07-14T23:05:15.287 回答
6

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

如果这些文档像 Java 一样以 Windows 帮助格式提供,那也很好,这比 html javadoc 方便得多,并且可以让您搜索几乎零延迟的方法。

于 2011-07-14T23:38:42.340 回答