scala - 如何为 scala 宏编写 Intellij IDEA 插件
问题描述
我编写了编译后可以工作的宏,但问题是 Intellij IDEA 看不到我生成的代码并且出现了一些红线。所以我在这里找到了解释,我需要编写 IDEA 插件来让 IDEA 识别我生成的代码。问题是我无法使用SyntheticMembersInjector
,因为缺少依赖项。是否可以为我自己的 scala 宏编写 IDEA 插件?
我的插件.sbt:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.7.6")
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.10.0-RC1")
addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "1.0.2")
addSbtPlugin("org.jetbrains" % "sbt-idea-plugin" % "3.8.4")
我的 build.sbt:
import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport.dockerExposedPorts
import sbt.Keys.{scalacOptions, version}
lazy val coreProject = (project in file("."))
.enablePlugins(JavaAppPackaging, DockerPlugin, AkkaGrpcPlugin)
.settings(
scalaVersion := "2.12.12",
name := "CDMS",
version := "0.1",
libraryDependencies ++= BuildConfig.projectDependencies,
dockerBaseImage := "adoptopenjdk/openjdk15:alpine",
dockerExposedPorts += 9002
)
.dependsOn(validationProject)
lazy val validationProject = (project in file("validation"))
.enablePlugins(SbtPlugin)
.settings(
scalaVersion := "2.12.12",
sbtPlugin := true,
libraryDependencies ++= BuildConfig.monocleDependencies
)
解决方案
推荐阅读
- opencl - clEnqueueMapImage 和 clEnqueueUnmapMemObject 之间的错误
- android - BadTokenException: 无法添加窗口 -- 已在三星设备上添加窗口 android.view.ViewRootImpl$W@cb70704
- jquery - 具有角度 6 集成的 Foundation 6 不起作用
- r - 将列表中的特定元素存储到 R 中的选定向量中
- c# - 为什么在.Net HashHelpers.IsPrime 中以这种方式实现?
- python - Python缩进问题(猜数游戏)
- angular - TypeError:无法读取未定义 Firestore 的属性“uid”
- ubuntu-16.04 - openvpn:从局域网内部连接时无法ping客户端
- r - 使用 STOP() 终止执行,但不在 R 中抛出“错误”消息
- windows - 如何解析 WMIC 打印机列表已满