我使用的是 Scala 3.3.1,Intellij 没有给我有用的构建错误输出,也没有错误突出显示。
例如,如果我的项目使用任何 3.x Scala SDK,并且我有以下错误代码,它不会在 IDE 本身上显示任何内容来告诉我存在类型错误:
并且编译时,无论出现什么错误,控制台输出始终是相同的。
scalac: Error: 'java.lang.String dotty.tools.dotc.reporting.Message.msg()'
java.lang.NoSuchMethodError: 'java.lang.String dotty.tools.dotc.reporting.Message.msg()'
at dotty.tools.xsbt.DelegatingReporter.doReport(DelegatingReporter.java:47)
at dotty.tools.dotc.reporting.Reporter.issueUnconfigured(Reporter.scala:158)
at dotty.tools.dotc.reporting.Reporter.go$1(Reporter.scala:181)
at dotty.tools.dotc.reporting.Reporter.issueIfNotSuppressed(Reporter.scala:200)
at dotty.tools.dotc.reporting.Reporter.report(Reporter.scala:203)
(etc...)
我的项目涉及很多复杂的类型和方法,每次出现类型不匹配、拼写错误的变量或任何微小的不合适的地方时,IntelliJ 根本不会告诉我错误可能是什么或错误在哪里,这使得我的工作几乎不可能完成。
相反,如果我随后将项目的 SDK 重新分配给 Scala 2.x,则会发生我想要发生的情况:
同样,它会返回有用的错误消息:
(...)Main.scala:3:21
type mismatch;
found : String("test")
required: Int
val test: Int = "test"
遗憾的是,我的工作不允许我使用 Scala 2,但如果没有像同一 IDE 上的 Scala 2 那样收到错误消息和错误突出显示,这将变得不可能。我该如何解决这个问题?
Scala 插件 2023.3 的稳定版本尚未修复此问题。它可以作为 Scala 插件夜间构建的一部分进行安装。
您可以在 设置 > 语言和框架 > Scala > 更新选项卡 > 更新频道并将其设置为 Nightly Builds 中执行此操作。单击“立即检查”后,IDEA 应该提示您安装 Scala 插件的夜间版本。