【问题标题】:How do I access scala documentation from the repl?如何从 repl 访问 scala 文档?
【发布时间】:2011-10-09 18:04:37
【问题描述】:

首先是内置文档,还有我自己的代码。

具体来说,我想获取类似于在 python 中如何在方法或对象上调用 help() 以获取有关打印到 repl 中的对象的信息的信息。

【问题讨论】:

标签: scala read-eval-print-loop


【解决方案1】:

Scaladocs 生成为 HTML,因此您不希望它们出现在 REPL 窗口中。但是,您可能希望从 REPL 在浏览器中加载文档。你可以通过创建自己的方法来做到这一点(这个方法需要一个实例;如果你愿意,你可以让它取一个 Class[A] 的实例):

def viewdoc[A](a: A) {
  val name = a.asInstanceOf[AnyRef].getClass.getName
  val url = "http://www.scala-lang.org/api/current/index.html#"+name
  val pb = new ProcessBuilder("firefox",url)
  val p = pb.start
  p.waitFor
}

如果您想更加聪明,您可以解析名称以将 Web 浏览器指向 java 类的 Javadocs 和 Scala 类的 Scaladocs 以及任何您拥有类文档的地方。您可能还想使用本地源 file:///my/path/to/docs/index.html# 而不是来自网络的 API。但是我用了这个,所以你可以试试

scala> viewdoc(Some(1))

【讨论】:

  • 简短说明:firefox 必须在路径中,您必须在 Windows 框中添加 .exe
  • @michael.kebe - 是的,您必须安装 firefox,或者从命令行使用其他 Web 浏览器等 :)
  • 抱歉造成混淆 - scaladoc 输出可能是 html,但文档抽象地不是 html - 它是带注释的文本。当我想了解方法的作用时,我想在 repl shell 中查看该文本(以某种 shell 友好的显示格式)。这对于查看源代码也很方便(用于快速迭代和开发)。
  • 这些都不需要(或者可能不需要)。如果您使用过 ipython,您就会知道我的意思,否则请参阅 scienceoss.com/getting-help-in-ipython 并尝试它以了解可能(并且很棒)的示例。我希望像这样的东西??存在,或者在 scala 中很容易做到。
  • 对于Mac OS X中的Google Chrome,使用这个ProcessBuilder命令val pb = new ProcessBuilder("open", "-a", "Google Chrome", url)
猜你喜欢
  • 1970-01-01
  • 2012-08-11
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多