IntelliJ 突然停止突出显示 Scala/Dotty 项目中的错误

IntelliJ suddenly stops highlighting errors in Scala/Dotty project

TLDR; IntelliJ 没有突出显示我的 Scala 项目中的任何错误(syntax/type 不匹配)。我尝试过类型感知突出显示,将突出显示级别设置为 "Inspections",并根据 Whosebug 答案启用 "Experimental Features",然后重新加载项目。

我有一个 Scala 2.13 项目 (sbt),它在 IntelliJ 2019.3 中运行良好。之后我做了一些更改(我没有检查它是否编译,并且它有几个错误)然后我决定将它移植到 Dotty(并将 IntelliJ 更新到 2020.1 EAP)。我新建了一个Dotty项目,显然没有报错

然后我将所有源文件复制到该项目并修改了 build.sbt 文件。当我这样做时,我可以看到一些突出显示的语法错误,并且 given 关键字未被检测为关键字,很可能是因为插件认为该语言应该是 Scala 2,而不是 Scala 3。

之后我从sbt中导入工程,错误的语法错误消失了,于是我高高兴兴地关闭了那个文件,开始修复其他的。我不确定错误突出显示是否首先起作用然后关闭,或者它是否从未起作用。过了一会儿,我意识到未解决的引用没有突出显示 - 例如,当我拼错 class 名称并试图转到声明时,它没有做任何事情,尽管当我更正它时,它可以解析引用,大概是因为那是没有错误的文件之一。然后我看到语法错误也没有被识别。

我启用了类型感知突出显示,并且突出显示级别设置为检查。我正在使用 IntelliJ 2020.1 EAP 和 Scala 插件版本 2020.1.977 (EAP)。 build.sbt 包含 scala 版本“0.23.0-RC1”。 IntelliJ 不是 运行 任何其他进程,当时我的计算机上也没有任何资源密集型程序。

我在右下角收到了多条错误信息,比如

我感觉这只是 Dotty 的一个错误,很快就会得到解决。 Scala Nightly 插件有类似的行为,这就是为什么我切换到 EAP 并创建了一个全新的项目,我认为它会更少错误。任何建议将不胜感激。

我的旧 Scala 2 项目在 IntelliJ 2020.1 EAP 中打开时也发生了同样的事情,但在 2019.3 中没有。现在看来不是Dotty特有的东西

官方还不支持 Dotty,因为它的语法没有被冻结,现在正在更改可选大括号之类的东西。唯一一切正常的地方是官方 vscode,编译器开发人员使用它。所以,如果你想玩 dotty,一个 vscode 和所有的环境可能是你的选择:https://dotty.epfl.ch/docs/usage/ide-support.html

IntelliJ Scala 插件 2020.1 Scala 3/dotty 获得支持

The Scala plugin now includes preliminary support for Scala 3: the new syntax, error highlighting, navigation, type info, and many other bread-and-butter IDE features.

Because both the language and the language support are still works in progress, we recommend using plugin nightly builds if you want to get new features and bug fixes as quickly as possible.

可以在 IntelliJ Scala Plugin Blog

中找到更多详细信息