【问题标题】:How to configure IntelliJ Scala Plugin to use Scala's native presentation compiler?如何配置 IntelliJ Scala 插件以使用 Scala 的本机演示编译器?
【发布时间】:2020-07-20 19:24:47
【问题描述】:

虽然IntelliJ Scala Plugin 使用Scala 编译器来生成实际的字节码,但似乎使用its own 实现presentation compiler 在编辑器中提供实时type-aware error highlighting

Idea 的 Scala 实现的语法高亮功能 插件,它需要立即重新处理您的所有文件 以类似的方式改变,但现在与真实的完全一样 编译器会。

这可能是有时项目构建成功但 IntelliJ 在编辑器中显示误报红色下划线的原因。即使use sbt shell 被公开票证SCL-11079 明显选择,情况似乎也是如此

默认情况下,sbt 编译应该标记它发现的其他错误 编辑器和项目视图。报告的误报错误 如果可能,应删除内部注释器。应该有一个 使用 sbt 输出作为“单一事实来源”的选项 突出显示错误,代价是即时错误突出显示。

或者如果项目被导入为BSP project

sbt shell 确实不会帮助在编辑器中突出显示错误,也不会 将 BSP(暂时)。 In-ide 高亮显示使用一种方法 完全独立于常规编译

是否可以将 IntelliJ 配置为使用开箱即用的 Scala presentation compiler 而不是其自己的自定义实现,以便我们可以减少类似于 Metals 提供的误报错误的机会?

【问题讨论】:

    标签: scala intellij-idea scala-compiler


    【解决方案1】:

    根据show bsp diagnostics in editor SCL-16610 存在一个 IntelliJ 注册表标志

    scala.highlighting.compiler.errors.in.editor
    

    启用experimental 功能

    使用内置解析器和类型检查器突出显示错误 仍然是 Scala 插件的问题,我们可以尝试 使用 BSP 的编译器输出...潜在的缺点:类型不匹配时突出显示的错误较少 问题:BSP 和编译器只公开原始字符串消息和 职位。我们会丢失类型差异和类型错误提示。

    这是使它在我的机器上工作的步骤

    1. 安装JetBrains Toolbox,它可以在发布的同时安装早期访问程序(这样如果出现任何问题,您可以恢复到您的工作系统)
    2. 安装2020.1
    3. 确保Nightly Builds更新频道设置在Preferences | Languages & Frameworks | Scala | Updates

    4. 从项目的根目录中删除.idearm -fr .idea
    5. 重新导入项目并选择BSP项目

    6. 如果一切正常,项目根目录下应该有.bloop目录
    7. 打开 IntelliJ 注册表:Help | Find Action... | Registry
    8. 设置密钥scala.highlighting.compiler.errors.in.editor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多