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.0.3"
addCompilerPlugin("com.github.takezoe" %% "runtime-scaladoc-reader" % "1.0.3")
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
.