Как настроить плагин IntelliJ Scala для использования собственного компилятора презентаций Scala? - PullRequest
0 голосов
/ 08 апреля 2020

Хотя IntelliJ Scala Плагин использует Scala собственный компилятор для генерации фактического байт-кода, он, похоже, использует свою собственную реализацию представления компилятора для обеспечить в режиме реального времени подсветку ошибок с учетом типа в редакторе:

функцию подсветки синтаксиса, которая реализована в плагине Idea Scala и требует немедленной повторной обработки всех файлы, которые вы изменяете аналогично, но теперь точно так же, как и настоящий компилятор.

Это может быть причиной того, почему иногда проекты создаются успешно, а IntelliJ показывает ложные положительные красные подчеркивания в редакторе. Похоже, что это так, даже если использовать оболочку sbt выбрано, как видно по открытому запросу SCL-11079

По умолчанию компиляция sbt должна помечаться Дополнительные ошибки он находит в редакторе и представлении проекта. Ложноположительные ошибки, о которых сообщает внутренний аннотатор, должны быть по возможности удалены. Должна быть возможность использовать вывод sbt как «единственный источник правды» для выделения ошибок, за счет мгновенного выделения ошибок.

или если проект импортируется как BSP project * Оболочка 1026 *

sbt действительно не поможет с подсветкой ошибок в редакторе, как и BSP (пока). В подсвечивании in-ide используется метод, который полностью отделен от обычной компиляции

. Есть ли способ настроить IntelliJ на использование Scala готового компилятора представления собственной пользовательской реализации, так что мы можем уменьшить вероятность ложных положительных ошибок, сродни тому, что Metals предоставляет?

1 Ответ

0 голосов
/ 08 апреля 2020

Согласно показывать диагностику bsp в редакторе SCL-16610 существует флаг реестра IntelliJ

scala.highlighting.compiler.errors.in.editor

, который включает экспериментальную функцию

Поскольку подсвечивание ошибок с использованием встроенного анализатора и средства проверки типов продолжает оставаться проблемой для плагина Scala, мы можем поэкспериментировать с использованием вывода компилятора из BSP ... Потенциальные недостатки: Менее богатая подсветка ошибок при несовпадении типов проблемы: BSP и компилятор выставляют только необработанные строковые сообщения и позиции. Мы потеряли бы разность типов и подсказки об ошибках типа.

Вот шаги, которые заставили его работать на моей машине

  1. Установка JetBrains Toolbox , который включает установка программ раннего доступа вместе с выпусками (так что вы можете вернуться к своей рабочей системе, если что-то пойдет не так)
  2. Установить 2020.1
  3. Убедитесь, что Nightly Builds канал обновления установлен в Preferences | Languages & Frameworks | Scala | Updates

    enter image description here

  4. Удалите .idea из root проекта : rm -fr .idea
  5. Повторно импортируйте проект и выберите проект BSP

    enter image description here

  6. Там должно быть * Каталог 1051 * в проекте root если все в порядке
  7. Открыть реестр IntelliJ: Help | Find Action... | Registry
  8. Установить ключ scala.highlighting.compiler.errors.in.editor

    enter image description here

...