Java
July 6, 2023

Новые фичи в IDEA 2023.2 EAP 7

Быстро приближается релиз IntelliJ IDEA 2023.2, а значит, текущему EAP-у осталось жить недолго. Вы все еще можете успеть попробовать новые фичи, и попросить исправить их до релиза, когда исправлять будет уже поздно.

JetBrains ушел из России, но его IDE всё ещё является основным средством разработки на Java. Как у бывшего product marketing manager в JetBrains, у меня есть некоторый опыт в написании и переводе таких статей. Изначально, принести эту новость сподвигло то, что в ней есть важное обновление плагина Big Data Tools, над которым когда-то работала моя команда. Кроме того, JB разродились официальной поддержкой LSP, что наверняка, стоило им титанических моральных усилий. PMM-ов бывших не бывает, им просто перестают за это платить.

Фреймворки и технологии

Поддержка LSP для разработчиков плагинов

В этом EAP появилась огромная, фундаментальная фича, которую так долго ждали: LSP API для разрабочтиков плагинов. LSP - это протокол между редактором и бэкендом анализа кода, который позволяет делать поддержку анализа кода без залочки на конкретного вендора IDE.

IDE на основе IntelliJ известны способностью глубоко анализировать исходный код и поддерживать множество языков программирования и фреймворков. В то же время, часть языков технологий не поддерживаются нативно, и возможно, в природе существует LSP-сервер, который их поддерживает.

LSP API, в основном, предназначется тем разработчикам плагинов, которые хотят использовать LSP для фичей, связанных с написанием кода. Если у вас есть свой язык программирования или фреймворк, можно добавить его поддержку в IDE, написав для него свой LSP-сервер и плагин для интеграции в IDEA.

Текущая версия поддержки LSP включает подсветку ошибок и ворнингов, квик-фиксы, автодополнение, переход к определениям функций. Список поддерживаемых фичей будет расширяться.

Чтобы написать самый минимальный плагин, который уже что-то делает, хватит несколько строк кода. Такой плагин должен реализовывать интерфейс com.intellij.platform.lsp.api.LspServerSupportProvider, перечислять на каких типах файлов он работает, и как запустить сервер. Плагин Prisma ORM, разработанный в JetBrains, может быть хорошим опенсорсным примером реализации такого плагина. Кодовая база дстаточно большая, но лишь несколько классов относятся к поддержке LSP - их можно пронаблюдать в пакете org.intellij.prisma.ide.lsp.*.

Предпросмотр Redoc UI для OpenAPI и Swagger

IDEA начала поддерживать предпросмотр Redoc UI для файлов спецификации OpenAPI и Swagger, включая YAML и JSON, позволяя переключаться между Redoc и Swagger. Эта интеграция позволяет использовать консоль Try it прямо внутри IDE, устанавливать параметры и рассылать запросы к API.

Поддержка GraphQL и WebSocket в HTTP Client CLI

Теперь вы можете использовать HTTP Client CLI для работы с GraphQL API и установки WebSocket-соединений с вашими сервисами, например, для тестирования или скриптов автоматизации.

Запросы к gRPC с использованием TLS в HTTP Client

Теперь вы можете делать gRPC-запросы через Transport Layer Security (TLS) в HTTP Client. TLS предоставляет шифрование и аутентификацию, обеспечивая конфиденциальность и целостность передачи данных. В синтаксисе запроса поддеживаются обе схемы (https:// and grpcs://).

Инспекция для Norway problem в YAML-файлах

Добавлена инспекция, исправляющая так называемую Norway problem, мешающая неправильной интерпретации булевских значений в YAML-файлах. Вкратце, а что если в YAML файле будет строчка 'NO', которую вы собирались интерпретировать как сокращение от страны Норвегия, но она внезапно стала булевским значением "no"?

Когда список, по большей части, состоит из строк, содержащих литерал, похожий на булевское значение, IDEA пытается подсветить этот литерал, обозначая потенциальную неконсистентность, и подсказывая добавить кавычки. Если список состоит из таких литералов (например, false, off, on, yes, no), любой лиетрал, который отличается от этого паттерна, подсвеичвается как возможная ошибка, несмотря на то, что никаких специальных решений проблемы и квик-фиксов IDE предлагать здесь не станет.

Бины-конфигурации Spring больше не требует процессора аннотаций

В свежей IDEA починили работу с кастомными конфигурациями. Теперь IDE дает человеческое автодополнение и валидацию свойств в файлах конфигурации YAML, без необходимости запускать отдельный процессор аннотаций.

Run / Debug

Непрерывный запуск JUnit для проектов Maven и Gradle

В свежей IDEA расширились возможности auto-testing с использванием JUnit, что позволило нормально работать с Maven и Gradle.

В дополнение к этому, упрощена активация режима непрерывного тестирования. Чтобы включить его, нужно использовать новую иконку Rerun Automatically, расположенную в окне Run/Debug. Каждый раз, когда вы сохраняете изменения, ваши тесты запускаются совершенно автоматически, что позволяет получать мгновенный фидбек на каждое обновление кода.

Остальные фичи

Разделение плагина Big Data Tools на кусочки

То, что плагин Big Data Tools - это огромный монолит, всегда было проблемой для пользователей. Сейчас его разделили на кусочки, которые можно использовать по-отдельности и сравнительно независимо. Это означает появление шести новых плагинов:

  • Плагин для Kafka позволяет мониторить кафковые процессы, управлять созданием консюмеров, продюсеров и топиков. Кроме того, он позволяет подключаться к Schema Registry, чтобы создавать и обновлять схемы.
  • Плагин для Spark позволяет работать со спарковыми проектами, запускать джобы и мониторить их исполнение.
  • Плагин для Flink - это отдельная штука для работы с Flink-проектами, которая умеет запускать джобы и мониторить их.
  • Remote File Systems создан для работы с облачными хранилищами типа AWS S3, Alibaba, Google Cloud и Tencent, это что-то типа файлового менеджера.
  • Big Data File Viewer нужен для того, чтобы получить быстрый предпросмотр файлов с большими данными (CSV, Parquet, ORC, Avro), не скачивая терабайты данных, и имея возможность смотреть их сразу в табличной форме.
  • Плагин Zeppelin нужен для эксплоративного анализа, визуализации и прототипирования в ноутбуках Zeppelin. Он делает для Цепелина нормальный UI, а не тот кошмар, что вы видите в вебе.
  • Если вам нужны все эти плагины одновременно (а почему бы их и не поставить, если вы за них всё равно заплатили), можно установить кмулятивный плагин Big Data Tools. Он подтянет их все.

Выше были перечислены наиболее важные изменения в IntelliJ IDEA 2023.2 EAP 7. Полный список таких изменений есть в Release Notes.

EAP скоро заканчивается, и у вас всё ещё есть возможность опробовать эти фичи и заслать в JB обратную связь. Если там есть какие-то дикие косяки, их ещё успеют починить.

Обратную связь можно отослать или через пункт Submit Feedback в меню Help, или пройдя в официальный багтрекер.

Источник