Skip to content

[Experimental] Lombok implemented with Scala macro.

License

Notifications You must be signed in to change notification settings

scala-steward/scala-macro-tools

 
 

Repository files navigation

smt

Project stage

CI Codecov Scaladex Jetbrains Plugin
CI codecov smt Scala version support Version

环境

  • Scala 2.11.x
  • Scala 2.12.x
  • Scala 2.13.x
  • Scala 3.x bitlap/rolls

文档

详细文档 https://bitlap.org/lab/smt

如何使用

annotations

  • @toString
  • @builder
  • @apply
  • @constructor 2.13+
  • @equalsAndHashCode
  • @javaCompatible 2.13+

Intellij插件 Scala-Macro-Tools

"org.bitlap" %% "smt-annotations" % "<VERSION>" 

在gradle,maven中,通常smt-annotations被替换为smt-annotations_2.12,其中,2.12表示Scala版本号。smt-annotations改名自smt-tools

scala 2.13.x版本中,需增加scalac参数-Ymacro-annotations

common

  • 通用的宏操作API的封装。
  • 对象转换器(零依赖,类型安全)。
  • JDBC ResultSet 转换器。
"org.bitlap" %% "smt-common" % "<VERSION>"

该库已发布到https://s01.oss.sonatype.org/仓库,请使用最新版本。仅将本库导入构建系统(例如gradle、sbt)是不够的。不同Scala版本还需要相应配置:

Scala 2.11 Scala 2.12 Scala 2.13
导入 macro paradise 插件 导入 macro paradise 插件 开启 编译器标记 -Ymacro-annotations
// 导入 macro paradise 插件
// <your-scala-version> 必须是Scala版本号的完整编号,如2.12.13,而不是2.12。
addCompilerPlugin("org.scalamacros" % "paradise_<your-scala-version>" % "<plugin-version>")

如果没有仓库,可以手动添加:

ThisBuild / resolvers ++= Seq(
  "Sonatype OSS Snapshots" at "https://s01.oss.sonatype.org/content/repositories/snapshots",
  "Sonatype OSS Releases" at "https://s01.oss.sonatype.org/content/repositories/releases"
)

About

[Experimental] Lombok implemented with Scala macro.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 100.0%