在创建Scala文档时,我还使用了这里记录的@throws
和@note
标签(Scaladoc Wiki - Tags and Annotations).
不幸的是我在生成的Scaladoc中找不到这些.
是否必须设置某些开关,考虑具体的事情或这是一个已知的问题?
顺便说一句:使用Scala 2.9.0.1 的scaladoc
Ant任务也没有发出警告.
编辑: BTW2并澄清:我不是指@throws
注释
@throws(classOf[RuntimeException])
def dispatch: Nothing = throw new RuntimeException
Run Code Online (Sandbox Code Playgroud)
这是在注释部分记录的,def
但@throws
Scaladoc 的标签就像
/** @throws RuntimeException
*/
def dispatch: Nothing = throw new RuntimeException
Run Code Online (Sandbox Code Playgroud) 我有一个包含5个模块的父项目.我试图弄清楚如何将模块级scaladoc聚合成一个有凝聚力的站点.任何帮助将非常感激.
我有一个简短的Bash脚本,可以对我的Scaladoc注释进行查找和替换,以生成指向第三方库的外部文档的链接.我希望每次使用doc
任务生成Scaladocs时都会运行此脚本.
我怎样才能做到这一点?
我想将ScalaDoc设置为从SBT链接到标准库.我正在使用0.12.4,但我很快就会切换到0.13.此外,我想通过使用0.13的支持使设置变得简单.
最好的选择是自动映射0.13autoAPIMappings
:
//Requires SBT 0.13. However, automatic mapping does not work for the standard library.
autoAPIMappings := true
Run Code Online (Sandbox Code Playgroud)
本scala-library
应该支持它,因为它的POM套info.apiURL
,并且这就是SBT读取.
但是,这不起作用.既没有String
也没有GenTraversable
超链接.last
表明没有选项添加到scaladoc
参数.
所以:
autoAPIMappings
办?info.apiUrl
.想到任何包裹?谷歌似乎没有帮助,如何查询具有某些属性的maven包,甚至如何在poms上进行全文搜索并不明显.find ~/.m2 ~/.ivy2 -name '*.pom' -type f|xargs grep info.apiUrl
在我的2G本地缓存中找不到任何结果.(这个问题似乎是SBT Scaladoc配置的重复,但是它用于更新配置和不同的SBT版本,所以问题是不同的;此外,现有的答案显示了一个弃用的解决方案).
我想用sbt生成的ScalaDoc链接到外部库,在sbt 0.13中我们autoAPIMappings
应该为声明它们的库添加这些链接apiURL
.但实际上,我使用的库中都没有提供它们的pom/ivy元数据,我怀疑其中一些库永远不会这样做.
该apiMappings
设置应该只是帮助,但它被键入Map[File, URL]
,因此适合为非托管依赖项设置doc urls.托管依赖项被声明为实例,sbt.ModuleID
不能直接插入该映射中.
我可以以某种方式apiMappings
使用将URL与托管依赖关联的东西填充设置吗?
一个相关的问题是:sbt是否提供了File
从a 获得a的惯用方法ModuleID
?我想我可以尝试评估一些类路径并返回File
s尝试将它们映射到ModuleID
s但我希望有更简单的东西.
注意:这与/sf/ask/1312308581/有关,但该问题的不同之处在于链接到标准库的scaladoc,有一个众所周知的File
scalaInstance.value.libraryJar
,在这种情况下不是这种情况.
我试图了解scaladoc 宏 是如何工作的。例如
/** $DESCR
*
* @define DESCR
* A `Consumer` simplifies resource management...
*
* @define KEY
* the key type
*
* @define VALUE
* the value type
*/
object Consumer {
/** Creates a new consumer
*
* @tparam A $KEY
* @tparam B $VALUE
*/
def apply[A, B](): Consumer[A, B] = ???
}
/** $DESCR
*
* @tparam A $KEY
* @tparam B $VALUE
*/
trait Consumer[-A, +B]
Run Code Online (Sandbox Code Playgroud)
我的印象是,这应该生成一个文档,其中包含 trait 和伴随对象的描述A …
我写了这样的评论:
/** Blah blah blah.
*
* {{{
* class MyAppServlet extends ControllerServlet {
* routes.publishWithReflection("/main", MainController)
* routes.publishWithReflection("/foo", FooController)
* }
* }}}
*
* Blah blah blah
*/
Run Code Online (Sandbox Code Playgroud)
我希望代码缩进,但这是生成的HTML的样子:
这是一个错误,还是......?我正在使用Scala 2.11.0.
我想为我班级的每个val和def创建ScalaDoc条目.问题是vals位于模式定义中,并且不知道如何使用/** */
语法.
例:
class C(id: String) {
val (part1, part2) = {
.....
(expr1, expr2)
}
}
Run Code Online (Sandbox Code Playgroud)
我如何记录part1和part2?
在阅读有关ScalaDoc的文档之前,我已阅读过.
我可能缺少明显的东西,但是我无法让Scaladoc链接到类-仅链接到伴随对象。考虑这些例子。
这很好用:
/** Returns a [[scala.List]] (also known as [[scala.collection.immutable.List]]). */
Run Code Online (Sandbox Code Playgroud)
虽然这不会链接,但以Could not find any member to link for "play.api.libs.json.JsObject"
警告记录:
/** Seems [[play.api.libs.json.JsObject]] is invalid. */
Run Code Online (Sandbox Code Playgroud)
但是,这(考虑了消歧语法)将链接:
/** Seems [[play.api.libs.json.JsObject$]] is liked. */
Run Code Online (Sandbox Code Playgroud)
我已经在SBT中整理了外部API映射,并生成了功能签名文档,这些文档正确链接到外部站点,因此,我(相当)确信这与我的问题无关。
我要去哪里错了?(或者这是一个错误吗?)
要链接另一个类,我可以使用[[package.Classname]]
. 链接由定义的函数def
也可以,但尝试链接变量不起作用。
我试过的:
object Foo {
val BAR = 0
}
object Example {
/**
* Does the thing with [[Foo.BAR]]
*/
def doTheThing(): Unit = {
}
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过[[Foo#BAR]]
(来自另一篇文章)而不是[[Foo.BAR]]
,但也失败了。
在 Scaladoc 中链接变量的正确方法是什么?