Scaladoc не может генерировать ссылки для внутренних классов в сигнатурах методов и классов
У меня есть черта высшего уровня, которая содержит ряд классов и черт, таких как:
trait Trees { self: Types =>
trait Tree
trait IdentifiedTree extends Tree
trait Empty extends Tree
/** The factory for [[TypeUse]] instances */
trait TypeUse extends Tree
/** AST tree to represent erroneous trees */
object BadTree extends IdentifiedTree
/** AST tree for empty statements and trees */
val Empty: Empty = new Empty {}
}
trait Types
Когда я генерирую документацию для него, используя scaladoc, я могу ссылаться на внутренние классы, используя [[CLASS_NAME]], но scaladoc не может создать ссылки для деревьев как в сигнатурах, так и в расширениях.
Я использую sbt для генерации скаладока и использую следующие флаги:
scalacOptions in (Compile, doc) ++= Seq("-groups", "-implicits",
"-diagrams", "-no-prefixes", "-author", "-explaintypes",
"-language:implicitConversions,higherKinds")
Чтобы дать вам лучшее представление, API для приведенного выше определения выглядит следующим образом (обратите внимание на отсутствующие ссылки):
Можете ли вы сказать мне, что я делаю не так, пожалуйста?
1 ответ
Я думаю, что проблема с вложенными чертами заключается в том, что внутренние черты даже не существуют за пределами реализации черты высшего уровня. Этот пост может быть полезен.
Изменение деревьев верхнего уровня на объект решило проблему для меня. Однако я не уверен, имеет ли это смысл для вашего случая использования.
object Trees {
trait Tree
trait IdentifiedTree extends Tree
trait Empty extends Tree
...
}