IntelliJ IDEA 2023.2. Долгожданный LSP, встроенный AI-чат, апгрейд до Windows 10 и -Xmx2G
Только что вышла IntelliJ IDEA 2023.2. Добавилось море интересных фичей и важных улучшений.
Идея раздулась до 2 гигабайт хипа, появилась поддержка LSP-серверов, и теперь вам нужно проапгрейдиться с Windows 7 минимум до Windows 10.
Из мелочей: появился чата с нейронкой «AI Assistant». Профилировщик научился отображать подсказки прямо в редакторе, а интеграция с GitLab позволяет меньше переключаться между браузером и IDE.
Хотите узнать подробней?
Ключевые изменения
Появился AI Assistant, который добавляет чат с нейронкой под капотом, позволяя делать простые вещи вроде написания документации в комментариях, подсказывания хороших наименований, генерации названий коммитов, и так далее. Ничего супер интеллектуального он не делает. Доступ к возможностям AI пока что ограничен: он требует установки плагина и логина в сервис JetBrains AI. Дополнительная информация достуна по ссылке.
Профилировщик отображает подсказки прямо в редакторе. Интерпретировать информацию можно по цветным аннотациям в гаттере.
Интеграция с GitLab позволяет делать мердж-риквесты прямо из IDE. Подробности.
User experience
Search Everywhere (Двойной ⇧ / Двойной Shift) теперь лучше ищет по тексту.
Можно назначать заголовкам проектов уникальные цвета и загружать для них свои иконки. Если проектов в воркспейсе много, их куда легче находить. А еще, это красиво.
Переработано гамбургерное меню в панели инструментов new UI на Windows и Linux. Когда нажимаешь на иконку, элементы отображаются горизонтально, перекрывая тулбар. Появилась опция превратить это меню в отдельный тулбар.
Во вьюхе Project теперь можно сортировать файлы по времени изменения.
Пользователи new UI получили альтернативную тему Light with Light Header. Это светлая тема, в которой синхронизированы цвета для загловков окнон, подсказок и всплывающих окон нотификаций.
В полноэкранном режиме new UI на macOS, кнопки управления окном отображаются справа от главного меню, а не в перекрывающей панели, как раньше.
В разделе настроек Settings / Preferences | Editor | Inspections реализована подсветка примеров кода.
Для удобства пользователей Linux, нативный заголовок (который рисует операционная система) удален из new UI, это делает интерфейс более чистым и аккуратным.
Во вьюхе Project, появилась новая опция Open Directories with Single Click, которая делает разворачивание и сворачивание директорий более быстрым и отзывчивым.
Расширены возможности настройки главной панели new UI. Появилась выпадашка, в которой можно быстро выбрать элементы, которые появятся на тулбаре.
В разделе настроек Settings/Preferences | Plugins появился набор рекомендуемых плагинов, который автоматически формируется на основе специфики открытого проекта.
Переработан интерфейс запуска и отладки во вьюхе Services, теперь оно выглядит более похожим на виджет Run/Debug.
В виджете Run теперь можно запинить ваши наиболее любимые конфигурации. Это полезно, когда у вас очень много конфигруаций и требуется функциональность «закладок».
Java
Расширено количество инспекций для того, чтобы писать более высококачественный и правильный код. Подробнее об улучшения в коданализе есть отдельный пост.
Появилась подсветка и навигация по форматирующим строкам.
Улучшилась поддержка тэга
@snippet
в Javadoc-комментариях.Обнаружились новые способы применять рефакторинги сразу к нескольким элементам.
Улучшено распознавание позиции метода в отчете о стектрейсе, даже если номера строк недоступны или разошлись с оригиналом.
Более лучшее распознавание конкатенаций и интерполяции SQL в Java и Kotlin, ловить SQL-инъекции стало проще.
Scala
Улучшенная поддержка Scala 3: нормальная поддержка enum-ов, улучшенный декомпилятор TASTy, более приличная отладка. Из дополнительных плюшек: более информативное дополнение для Universal Apply Methods, поддержка IArray в редакторе и более корректная работа с синтаксисом «fewer braces».
Проекты на sbt стали работать чуть лучше.
Починили несколько проблем с выводом типов.
Zinc стал компилятором по-умолчанию. Это позволило полноценно поддержать инкрементальную компиляцию свежих фичей Scala 3, включая инлайн-методы.
Улучшен интерфейс управления директориями source и target.
Улучшилось отображение быстрой документации ScalaDoc. Включая подсветку аннотаций, ключевых слов и литералов, с использованием текущей выбранной темы оформления. Реализовано разделение списка трейтов и классов на несколько строк. Заработала поддержка ключевых слов из Scala 3.
Производительность
Появилась новая утилита командной строки для быстрой сборки и заливки shared indexes. Это делается всего за несколько кликов, вместо написания кучи скриптов и сервисов. Подробности.
Run/Debug
При отладке реактивных приложений, теперь можно быстро вычислять значения вотчей и локальных переменных для типов
Mono
иFlux
.Автотестинг стал менее сырым, и теперь можно использовать его вместе с Maven/Gradle/JPS.
Контроль версий
Появилась возможность коммитить только нужные тебе строки. Можно не коммитить куски кода целиком.
Профилирование
Attach IntelliJ Profiler и Capture Memory Snapshot теперь запускаются отдельными кнопками в окне Run.
По-умолчанию, теперь используется Wall-clock profiling mode (учитывается полное время, проведенное внутри метода, включая время ожидания).
Фреймворки и технологии
Можно запускать и отлаживать приложения в Tomcat, запущенном через Windows Subsystem for Linux (WSL).
Можно посылать gRPC-запросы по TLS с помощью HTTP Client.
В HTTP Client появилась возможность разобрать спецификации Swagger и OpenAPI и показать соответствующее дополнение для тела JSON-запроса.
В диалоговое окно Edit Swagger Codegen Configuration добавили кастомизаций, а конфигурации запуска теперь доступны из гаттера без дополнительных настроек.
Появился предпросмотр Redoc UI для спецификаций OpenAPI и Swagger, включая YAML и JSON. Можно переключаяться между Redoc и Swagger UI прямо внутри IDE.
Появилось автодополнение ключей JSON-файлов для JavaScript.
Теперь можно вынести часто используемый JavaScript-код для обработчиков HTTP Client в отдельные модули и импортировать их.
Предпросмотр PDF и HTML отображается рядом с результатами запросов HTTP Client.
HTTP Client CLI позволяет взаимодействовать с GraphQL API и подключаться к сервисам через WebSocket.
При нстройке конфигурации Spring Boot, поле VM options начало отображать автодополнение по ключам, которые можно перечислить с помощью во флага
-D
.Автодополнение и валидация свойств в YAML-конфигурациях Spring доступны сразу же, без настройки процессора аннотаций.
Появилась поддежка Spring AOP для Kotlin.
Работа с форматом спецификаций AsyncAPI стала проще: появилась валидация схемы и автодополнение по референсам. Появилась вьюха Endpoints и панель Editor Preview.
Для борьбы с Норвежской проблемой появилась специальная инспекция, которая подсвечивает возможность неправильной интерпретации булевских значений в YAML.
Docker
Можно смотреть файлы внутри слоев.
Можно использовать одну Docker-конфигурацию перед другой, добавив ее в список Before Launch.
Kubernetes
Несколько kubeconfig-файлов уживаются внутри одного проекта. Управлять несколькими кластерами или несколькими средами в разных кластерах стало куда проще.
В окне Services теперь можно смотреть логи деплойментов.
Сборка
Полная поддержка свежей версии Maven 4.0.0-alpha.
Веб-разработка
Улучшенное форматирование ошибок в JS/TS.
Поддержка CSS nesting.
Vue Language Server (Volar) умеет в более лучшее определение ошибок и информацию по типам. Это используется для точных быстрых переходов и в окне быстрой документации.
Появилось несколько новых live templates для React hooks.
Качество кода
Статический анализ теперь можно делать через JetBrains Qodana — лубочно-самобытный статический анализатор, по легенде подходящий к любым популярным способам строить CI/CD. Подробности.
Базы данных
При работе с кластером Redis стали доступны все те же настройки и фичи, что и при работе с одиночной нодой.
Переделан интерфейс миграции схемы.
В окне настроек Data Editor and Viewer появилось поле Time zone. Этот часовой пояс используется при отображении datetime.
Добавлена поддержка внешних баз и шар в Redshift.
Разное
Появилась поддержка LSP API, который нужен разработчикам плагинов, получающих информацию о языке из LSP-серверов. Подробности.
Плагин Big Data Tools распилен на несколько микроплагинов, которые можно использовать по-отдельности. Так возникли новые сущности: Kafka, Spark, Flink, Remote File Systems, Big Data File Viewer и Zeppelin.
Объявлены устаревшими и больше не будут обновляться плагины для Struts2, Resin, tc Server, Play и Cloud Foundry.
Встроенный Android-плагин научился фичам Android Studio Giraffe Beta 2, включая поддержку Android Gradle Plugin (AGP) 8.0.0. Фичи, которые требуют логина в аккаунт Firebase, не поддерживаются.
Максимальный размер хипа (
-Xmx
) увеличен до 2Gb.Windows 7 объявлена устаревшей. Чтобы продолжать пользоваться Идеей, нужно обновлиться до Windows 10 и выше.
Это были все наиболее важные изменения. Полный список изменений есть в release notes (но вы практически точно не хотите на него смотреть).
Ваша обратная связь крайне важна для дайджестов Javawatch.
Если вам есть чем поделиться — сразу пишите Олегу.
Если ставите минус этой статье и собираетесь написать гадости в комментариях, не забывайте указывать в качестве причины личная ненависть к автору или компании, это очень приятно. В самом крайнем случае, стоит выбрать опцию больше рекламы, чем пользы.
Подписывайтесь на два моих Telegram-канала:
⇛ Javawatch. Анонсы по Java: новости, митапы.
⇛ Откровения от Олега. Личный канал + чат практически без цензуры, где можно обсудить содержимое дайджеста в самых крепких выражениях.