takezoe / runtime-scaladoc-reader   1.0.3

Apache License 2.0 GitHub

Allows to read Scaladoc at runtime by embedding as annotation by the compiler plugin.

Scala versions: 2.13 2.12

runtime-scaladoc-reader Scala CI Maven Central License

Allows to read Scaladoc at runtime by embedding as annotation by the compiler plugin.

Setup

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")

Usage

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.