首页 > 解决方案 > 如何为 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
  )

标签: scalaintellij-ideasbt

解决方案


推荐阅读