如何从Scala的标准库继承Scaladoc?

时间:2014-05-20 17:06:54

标签: scala inheritance documentation sbt

如果我理解正确,方法的Scaladoc应该自动继承它覆盖的父方法的Scaladoc。这似乎适用于本地类的一组,但是从Scala的标准库扩展时(并且可能是任何外部依赖项?)。

class LocalParent {
  /**
   * some documentation
   */
  def foo = ???
}

class DocumentedChild extends LocalParent

class UndocumentedChild extends Iterator[Int] {
   def hasNext = ???
   def next = ???
}

有没有办法继承Scaladoc?或者我做错了什么?

此外,我正在使用sbt doc,因此不直接使用scaladoc

2 个答案:

答案 0 :(得分:6)

这是我使用的(SBT 0.13):

scalacOptions in (Compile, doc) ++=
  Seq("-diagrams",
      "-diagrams-max-classes",
      "20",
      "-external-urls:java=http://docs.oracle.com/javase/6/docs/api/," +
      "scala=http://www.scala-lang.org/api/current/")

附录1:

要解决在重写方法并想要重写方法的文档注释时继承标准库类的问题,可以使用inherit documentation标记对成员进行注释:

/** @inheritdoc */
override def foo(bar: String): Int = bar.length

附录2:

this SBT 0.13 documentation page记录了此功能的更现代形式。

答案 1 :(得分:2)

现在它变得容易多了。只需添加

autoAPIMappings := true

到您的SBT设置。 (build.sbtproject/Build.scala

使用SBT版本0.13.5和Scala 2.11.7进行测试,但根据SBT documentation

,它应该一直工作到2.10.2

这应该适用于指定其文档所在位置的任何托管依赖项。如果它不适用于某些依赖项,请参阅other options