1

我有一个使用 scala-meta 的真正初学者问题

我想根据字段的名称向案例类字段的子集添加注释。要注释的类和字段定义如下:

val classMapping = Map[String,String](
    ("com.example.employees","""OntologyContext("http://schema.org")"""),
    ("Employee.scala","""OntologyType("person")""")
)

val fieldMapping = Map[String,String](
    ("hello","""OntologyRef("name")"""),
    ("job","""OntologyRef("title")"""),("id","""Obfuscated""")
)

前:

package com.example.employees
import java.time.LocalDate
case class Employee(
  hello: String,
  job:String,
  id:String,
  employmentDate: Date)

后:

package com.example.employees
import java.time.LocalDate
@OntologyContext(“http://schema.org”)
@OntologyType(“person”)
case class Employee(
  @OntologyRef(“name”) hello: String,
  @OntologyRef(“title”) job: String,
  @Obfuscated() id:String,
  employmentDate: Date
)

我的问题与树转换中所需的准引号的语法有关:

  1. 选择指定的字段;和
  2. 插入注释

您能否参考任何可以为我指明正确方向的示例?

4

3 回答 3

0

现在支持scala.meta 1.1.0 和宏天堂 3.0.0-M5

命名参数仍有问题

于 2016-09-13T12:56:07.877 回答
0

如果我理解正确,这是目前不可能的。Scala-meta 注释宏还不支持参数https://github.com/scalameta/paradise/issues/11

于 2016-08-07T21:40:32.033 回答
-1

注意:最新的IntelliJ IDEA 2016.3(2016 年 12 月)应该有助于使用这些准引号,因为现在支持它们:

另一个主要的插件改进是对scala.meta的支持- 旨在成功的新元编程工具包scala.reflect
IntelliJ IDEA 支持新型宏注释并为准引号提供编码帮助scala.meta

https://d3nmt5vlzunoa1.cloudfront.net/scala/files/2016/11/image00.png

scala.meta新的插件版本为您带来了用于宏注释的排水沟图标。单击这些图标可展开相应的注释。
IntelliJ IDEA 会自动检测注释何时更改,并提示您通过装订线图标(或标准的重新编译操作)重新编译它们。

于 2016-12-24T13:26:54.450 回答