问题标签 [scalameta]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
289 浏览

scala - scala-meta:取消引用时类型不匹配;找到:Option[scala.meta.Type.Arg] 需要:scala.meta.Type

我正在使用scala-meta的新型宏注释。所以我扩展了@Main注解的例子:

SConsumer.scala:

SConsumerProperty.scala:

它给出了以下编译器错误:

那么,如何将 Type.Arg 转换为 Type?

0 投票
2 回答
486 浏览

scala - Scala 将字符串反射到单例对象

我正在寻找一种将作为字符串给出的 Scala 单例对象(例如:package1.Main)转换为 Main 的实际实例的方法,以便我可以在其上调用方法。

问题示例:

magiclyConvert1 和magicallyConvert2 函数如何实现?

0 投票
1 回答
176 浏览

scalameta - 宏扩展的编译时间参数

我想编写一个注释宏,添加一个可以在编译时指定的extends <sometype>特征。<sometype>

如何将编译时参数传递给宏扩展?理想情况下,我想在编译器调用中指定一个命令行参数。

0 投票
1 回答
334 浏览

scala - Scalameta 与 maven 内联

我尝试inline / meta在 scala-maven 项目中实现 scala-meta 样式的宏注释。我在编译中遇到以下错误。

我们是否需要额外的编译器插件才能使 scala meta 工作,或者我在这里遗漏了什么?顺便说一句,scalameta依赖是我添加的唯一依赖。我的 Scala 版本是 2.11

0 投票
1 回答
762 浏览

scala - Scalameta:识别特定的注释

我想使用 scalameta 注释宏在 Scala 中自动生成 REST API 模型。具体来说,给定:

我想生成:

我在这里工作:https ://github.com/pathikrit/metarest

具体来说,我正在这样做:

我对以下代码片段不满意:

上面的代码对我拥有的注释进行“字符串”模式匹配。无论如何要重新使用我必须为这些模式匹配的确切注释:

0 投票
1 回答
96 浏览

scala - 如何附加隐式参数使用 scala 元注释?

例如,为func方法附加一个隐式参数 id:
之前

scala meta 能做到这一点吗?

0 投票
1 回答
339 浏览

scala - 如何使用 scala 元注释获取方法返回类型?

我想做一个使用scala meta.Usage简单的日志注释:

如何检查是否f1Future[ _ ]类型?谢谢
此外,我不想在Log注释中使用反射(性能成本),我认为方法结果类型可以在编译时确定。

0 投票
1 回答
165 浏览

scalameta - 如何将参数传递给宏注释?

我想得到定义为的StaticAnnotation的参数:

如何在块中获取logTaglogger函数值meta?我似乎有关于这一点的元教程。Lit只是引用Int/Double等,而不是自定义类类型。

0 投票
1 回答
123 浏览

scala - Scalameta Decl.Def 不适用于 trait def 方法

我在 def 声明中使用了 Scalameta(v1.8.0) 注释:

定义的注释类只返回输入,如下所示:

遇到一些编译器错误:

此外,如果我习惯Decl.Varvar v2: Int工作正常。

如何正确注释特征def?谢谢

0 投票
1 回答
69 浏览

scala - scala中的查找方法通过它的字节码名称反映

有没有办法通过它的字节码名称找到一个方法?

例如,我想println(Object)通过字符串查找引用"_root_.scala.Predef.println(Ljava/lang/Object;)V."