All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mdoc.StringModifier.scala Maven / Gradle / Ivy

There is a newer version: 2.2.24
Show newest version
package mdoc

import java.util.ServiceLoader
import metaconfig.ConfDecoder
import metaconfig.ConfEncoder
import metaconfig.ConfError
import metaconfig.generic.Surface
import scala.meta.inputs.Input
import mdoc.internal.cli.Settings
import scala.collection.JavaConverters._

trait StringModifier {
  val name: String
  def process(info: String, code: Input, reporter: Reporter): String
  override def toString: String = s"StringModifier(mdoc:$name)"
}

object StringModifier {
  def default(): List[StringModifier] = default(this.getClass.getClassLoader)
  def default(classLoader: ClassLoader): List[StringModifier] =
    ServiceLoader.load(classOf[StringModifier], classLoader).iterator().asScala.toList
  implicit val surface: Surface[Settings] = new Surface(Nil)
  implicit val decoder: ConfDecoder[StringModifier] =
    ConfDecoder.instanceF[StringModifier](_ => ConfError.message("unsupported").notOk)
  implicit val encoder: ConfEncoder[StringModifier] =
    ConfEncoder.StringEncoder.contramap(mod => s"<${mod.name}>")
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy