IntelliJ IDEA 2023.2. Долгожданный LSP, встроенный AI-чат, апгрейд до Windows 10 и -Xmx2G

9wfe0qv4opfmnr3nv-qopwptklw.jpeg

Только что вышла IntelliJ IDEA 2023.2. Добавилось море интересных фичей и важных улучшений.

Идея раздулась до 2 гигабайт хипа, появилась поддержка LSP-серверов, и теперь вам нужно проапгрейдиться с Windows 7 минимум до Windows 10.

Из мелочей: появился чата с нейронкой «AI Assistant». Профилировщик научился отображать подсказки прямо в редакторе, а интеграция с GitLab позволяет меньше переключаться между браузером и IDE.

Хотите узнать подробней?

Ключевые изменения

  1. Появился AI Assistant, который добавляет чат с нейронкой под капотом, позволяя делать простые вещи вроде написания документации в комментариях, подсказывания хороших наименований, генерации названий коммитов, и так далее. Ничего супер интеллектуального он не делает. Доступ к возможностям AI пока что ограничен: он требует установки плагина и логина в сервис JetBrains AI. Дополнительная информация достуна по ссылке.

  2. Профилировщик отображает подсказки прямо в редакторе. Интерпретировать информацию можно по цветным аннотациям в гаттере.

  3. Интеграция с GitLab позволяет делать мердж-риквесты прямо из IDE. Подробности.

User experience

  1. Search Everywhere (Двойной ⇧ / Двойной Shift) теперь лучше ищет по тексту.

  2. Можно назначать заголовкам проектов уникальные цвета и загружать для них свои иконки. Если проектов в воркспейсе много, их куда легче находить. А еще, это красиво.

  3. Переработано гамбургерное меню в панели инструментов new UI на Windows и Linux. Когда нажимаешь на иконку, элементы отображаются горизонтально, перекрывая тулбар. Появилась опция превратить это меню в отдельный тулбар.

  4. Во вьюхе Project теперь можно сортировать файлы по времени изменения.

  5. Пользователи new UI получили альтернативную тему Light with Light Header. Это светлая тема, в которой синхронизированы цвета для загловков окнон, подсказок и всплывающих окон нотификаций.

  6. В полноэкранном режиме new UI на macOS, кнопки управления окном отображаются справа от главного меню, а не в перекрывающей панели, как раньше.

  7. В разделе настроек Settings / Preferences | Editor | Inspections реализована подсветка примеров кода.

  8. Для удобства пользователей Linux, нативный заголовок (который рисует операционная система) удален из new UI, это делает интерфейс более чистым и аккуратным.

  9. Во вьюхе Project, появилась новая опция Open Directories with Single Click, которая делает разворачивание и сворачивание директорий более быстрым и отзывчивым.

  10. Расширены возможности настройки главной панели new UI. Появилась выпадашка, в которой можно быстро выбрать элементы, которые появятся на тулбаре.

  11. В разделе настроек Settings/Preferences | Plugins появился набор рекомендуемых плагинов, который автоматически формируется на основе специфики открытого проекта.

  12. Переработан интерфейс запуска и отладки во вьюхе Services, теперь оно выглядит более похожим на виджет Run/Debug.

  13. В виджете Run теперь можно запинить ваши наиболее любимые конфигурации. Это полезно, когда у вас очень много конфигруаций и требуется функциональность «закладок».

Java

  1. Расширено количество инспекций для того, чтобы писать более высококачественный и правильный код. Подробнее об улучшения в коданализе есть отдельный пост.

  2. Появилась подсветка и навигация по форматирующим строкам.

  3. Улучшилась поддержка тэга @snippet в Javadoc-комментариях.

  4. Обнаружились новые способы применять рефакторинги сразу к нескольким элементам.

  5. Улучшено распознавание позиции метода в отчете о стектрейсе, даже если номера строк недоступны или разошлись с оригиналом.

  6. Более лучшее распознавание конкатенаций и интерполяции SQL в Java и Kotlin, ловить SQL-инъекции стало проще.

Scala

  1. Улучшенная поддержка Scala 3: нормальная поддержка enum-ов, улучшенный декомпилятор TASTy, более приличная отладка. Из дополнительных плюшек: более информативное дополнение для Universal Apply Methods, поддержка IArray в редакторе и более корректная работа с синтаксисом «fewer braces».

  2. Проекты на sbt стали работать чуть лучше.

  3. Починили несколько проблем с выводом типов.

  4. Zinc стал компилятором по-умолчанию. Это позволило полноценно поддержать инкрементальную компиляцию свежих фичей Scala 3, включая инлайн-методы.

  5. Улучшен интерфейс управления директориями source и target.

  6. Улучшилось отображение быстрой документации ScalaDoc. Включая подсветку аннотаций, ключевых слов и литералов, с использованием текущей выбранной темы оформления. Реализовано разделение списка трейтов и классов на несколько строк. Заработала поддержка ключевых слов из Scala 3.

Производительность

  1. Появилась новая утилита командной строки для быстрой сборки и заливки shared indexes. Это делается всего за несколько кликов, вместо написания кучи скриптов и сервисов. Подробности.

Run/Debug

  1. При отладке реактивных приложений, теперь можно быстро вычислять значения вотчей и локальных переменных для типов Mono и Flux.

  2. Автотестинг стал менее сырым, и теперь можно использовать его вместе с Maven/Gradle/JPS.

Контроль версий

  1. Появилась возможность коммитить только нужные тебе строки. Можно не коммитить куски кода целиком.

Профилирование

  1. Attach IntelliJ Profiler и Capture Memory Snapshot теперь запускаются отдельными кнопками в окне Run.

  2. По-умолчанию, теперь используется Wall-clock profiling mode (учитывается полное время, проведенное внутри метода, включая время ожидания).

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

  1. Можно запускать и отлаживать приложения в Tomcat, запущенном через Windows Subsystem for Linux (WSL).

  2. Можно посылать gRPC-запросы по TLS с помощью HTTP Client.

  3. В HTTP Client появилась возможность разобрать спецификации Swagger и OpenAPI и показать соответствующее дополнение для тела JSON-запроса.

  4. В диалоговое окно Edit Swagger Codegen Configuration добавили кастомизаций, а конфигурации запуска теперь доступны из гаттера без дополнительных настроек.

  5. Появился предпросмотр Redoc UI для спецификаций OpenAPI и Swagger, включая YAML и JSON. Можно переключаяться между Redoc и Swagger UI прямо внутри IDE.

  6. Появилось автодополнение ключей JSON-файлов для JavaScript.

  7. Теперь можно вынести часто используемый JavaScript-код для обработчиков HTTP Client в отдельные модули и импортировать их.

  8. Предпросмотр PDF и HTML отображается рядом с результатами запросов HTTP Client.

  9. HTTP Client CLI позволяет взаимодействовать с GraphQL API и подключаться к сервисам через WebSocket.

  10. При нстройке конфигурации Spring Boot, поле VM options начало отображать автодополнение по ключам, которые можно перечислить с помощью во флага -D.

  11. Автодополнение и валидация свойств в YAML-конфигурациях Spring доступны сразу же, без настройки процессора аннотаций.

  12. Появилась поддежка Spring AOP для Kotlin.

  13. Работа с форматом спецификаций AsyncAPI стала проще: появилась валидация схемы и автодополнение по референсам. Появилась вьюха Endpoints и панель Editor Preview.

  14. Для борьбы с Норвежской проблемой появилась специальная инспекция, которая подсвечивает возможность неправильной интерпретации булевских значений в YAML.

Docker

  1. Можно смотреть файлы внутри слоев.

  2. Можно использовать одну Docker-конфигурацию перед другой, добавив ее в список Before Launch.

Kubernetes

  1. Несколько kubeconfig-файлов уживаются внутри одного проекта. Управлять несколькими кластерами или несколькими средами в разных кластерах стало куда проще.

  2. В окне Services теперь можно смотреть логи деплойментов.

Сборка

  1. Полная поддержка свежей версии Maven 4.0.0-alpha.

Веб-разработка

  1. Улучшенное форматирование ошибок в JS/TS.

  2. Поддержка CSS nesting.

  3. Vue Language Server (Volar) умеет в более лучшее определение ошибок и информацию по типам. Это используется для точных быстрых переходов и в окне быстрой документации.

  4. Появилось несколько новых live templates для React hooks.

Качество кода

  1. Статический анализ теперь можно делать через JetBrains Qodana — лубочно-самобытный статический анализатор, по легенде подходящий к любым популярным способам строить CI/CD. Подробности.

Базы данных

  1. При работе с кластером Redis стали доступны все те же настройки и фичи, что и при работе с одиночной нодой.

  2. Переделан интерфейс миграции схемы.

  3. В окне настроек Data Editor and Viewer появилось поле Time zone. Этот часовой пояс используется при отображении datetime.

  4. Добавлена поддержка внешних баз и шар в Redshift.

Разное

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

  2. Плагин Big Data Tools распилен на несколько микроплагинов, которые можно использовать по-отдельности. Так возникли новые сущности: Kafka, Spark, Flink, Remote File Systems, Big Data File Viewer и Zeppelin.

  3. Объявлены устаревшими и больше не будут обновляться плагины для Struts2, Resin, tc Server, Play и Cloud Foundry.

  4. Встроенный Android-плагин научился фичам Android Studio Giraffe Beta 2, включая поддержку Android Gradle Plugin (AGP) 8.0.0. Фичи, которые требуют логина в аккаунт Firebase, не поддерживаются.

  5. Максимальный размер хипа (-Xmx) увеличен до 2Gb.

  6. Windows 7 объявлена устаревшей. Чтобы продолжать пользоваться Идеей, нужно обновлиться до Windows 10 и выше.

Это были все наиболее важные изменения. Полный список изменений есть в release notes (но вы практически точно не хотите на него смотреть).

Ваша обратная связь крайне важна для дайджестов Javawatch.
Если вам есть чем поделиться — сразу пишите Олегу.

Если ставите минус этой статье и собираетесь написать гадости в комментариях, не забывайте указывать в качестве причины личная ненависть к автору или компании, это очень приятно. В самом крайнем случае, стоит выбрать опцию больше рекламы, чем пользы.

Подписывайтесь на два моих Telegram-канала:
⇛ Javawatch. Анонсы по Java: новости, митапы.
⇛ Откровения от Олега. Личный канал + чат практически без цензуры, где можно обсудить содержимое дайджеста в самых крепких выражениях.

© Habrahabr.ru