Allows to read Scaladoc at runtime by embedding as annotation by the compiler plugin.
Add following configuration to your build.sbt:
libraryDependencies += "com.github.takezoe" %% "runtime-scaladoc-reader" % "1.1.0"
addCompilerPlugin("com.github.takezoe" %% "runtime-scaladoc-reader" % "1.1.0")Assuming you have a below class which has Scaladoc:
package com.github.takezoe
/**
* Hello, World!
*/
class HelloWorld {
...
}You can get Scaladoc at runtime as follows:
import com.github.takezoe.HelloWorld
import com.github.takezoe.scaladoc.Scaladoc
val clazz = classOf[HelloWorld]
val scaladoc = clazz.getAnnotation(classOf[Scaladoc])
if(scaladoc != null){
val comment: String = scaladoc.value()
println(comment)
}You can also get Scaladoc from Method and Field as same as Class.