--- a/build.sc Tue May 11 10:59:51 2021 +0200
+++ b/build.sc Tue May 11 14:10:07 2021 +0200
@@ -103,13 +103,13 @@
ujson.read(os.read! pwd / "icons.json").obj.map(e => (e._1, e._2.obj("styles").arr.map(_.str).toSet)).toList
}
- private def tpl(d: IcoDef): String = {
+ private def tpl(d: IcoDef): Set[String] = {
val sym = d._1
d._2.map {
- case "brands" => s""" val ${camelCase(s"fab-$sym")}: T = fab("$sym")\n"""
- case "solid" => s""" val ${camelCase(s"fas-$sym")}: T = fas("$sym")\n"""
- case "regular" => s""" val ${camelCase(s"far-$sym")}: T = far("$sym")\n"""
- }.mkString
+ case "brands" => s""" def ${camelCase(s"fab-$sym")}: FA = fab("$sym")"""
+ case "solid" => s""" def ${camelCase(s"fas-$sym")}: FA = fas("$sym")"""
+ case "regular" => s""" def ${camelCase(s"far-$sym")}: FA = far("$sym")"""
+ }
}
override def generatedSources: Sources = T.sources{
@@ -117,27 +117,26 @@
val icons = parseIcons()
write(d / "generated.scala",
s"""
- | package fontawesome.generic
- | import scalatags.generic._
- | class GenericFA[Builder, Output <: FragT, FragT](
- | val bun: Bundle[Builder, Output, FragT]) {
+ |package fontawesome.generic
+ |import scalatags.generic._
+ |class GenericFA[Builder, Output <: FragT, FragT](
+ | val bun: Bundle[Builder, Output, FragT]) {
|
- | import bun.all._
+ | import bun.all._
|
- | type T = FA[Builder, Output, FragT]
- |
- | val faStack: Modifier = cls := "fa-stack fa-lg"
+ | val faStack: Modifier = cls := "fa-stack fa-lg"
|
- | implicit val bundle: Bundle[Builder, Output, FragT] = bun
- | implicit def fa2tag(x: T): TypedTag[Builder, Output, FragT] = x()
+ | implicit val bundle: Bundle[Builder, Output, FragT] = bun
+ | //implicit def fa2tag(x: FA): TypedTag[Builder, Output, FragT] = x()
+ | implicit def fa2mod(x: FA): Modifier = x()
|
- | private def fab(w: String): T = FA(FaStyle.Brands, w)
- | private def far(w: String): T = FA(FaStyle.Regular, w)
- | private def fas(w: String): T = FA(FaStyle.Solid, w)
+ | private def fab(w: String): FA = FA(FaStyle.Brands, w)
+ | private def far(w: String): FA = FA(FaStyle.Regular, w)
+ | private def fas(w: String): FA = FA(FaStyle.Solid, w)
|
- | ${icons map tpl mkString}
+ |${icons flatMap tpl mkString "\n"}
|
- | }
+ |}
""".stripMargin)
d
}