Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I link variables inside another object in scaladocs?

To link another class, I can use [[package.Classname]]. Linking functions defined by def works as well, but trying to link variables doesn't work.

What I've tried:

object Foo {

  val BAR = 0
}

object Example {

  /**
  * Does the thing with [[Foo.BAR]]
  */
  def doTheThing(): Unit = {

  }
}

I've also tried [[Foo#BAR]] (from another post) instead of [[Foo.BAR]], which fails as well.

What's the proper way to link variables in scaladoc?

like image 811
Edward Avatar asked Oct 29 '20 02:10

Edward


1 Answers

The right way to go is what you have already tried:

/**
* Does the thing with [[Foo.BAR]]
*/

Please note that if this is just an example to a more complicated scenario, you need to include the whole package path of Foo.BAR. For example, if Foo is under:

package a.b.c.d

Then you need to do:

/**
* Does the thing with [[a.b.c.d.Foo.BAR]]
*/

You can find in the scaladocs docs:

Create links to referenced Scala Library classes using the square-bracket syntax, e.g. [[scala.Option]]

For more information you can read SCALADOC FOR LIBRARY AUTHORS

You can see here and example how the akka library is using it.

like image 143
Tomer Shetah Avatar answered Oct 18 '22 06:10

Tomer Shetah