Это ретроспективный пост фичей IntelliJ IDEA 2023.2, в преддверии 2023.3 (которая сейчас в состоянии Beta 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: новости, митапы.
Откровения от Олега. Личный канал + чат практически без цензуры, где можно обсудить содержимое дайджеста в самых крепких выражениях.

Комментарии (17)


  1. mm3
    16.11.2023 20:36
    +1

    Новый релиз новые баги.

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

    Бесконечные блуждания по багтрекеру в поисках собратьев столкнувшихся с подобной проблемой привели только к пониманию, что скорее всего это как то связано с рефакторингом механизма передачи окружения при запуске приложения, введённом как раз в версии 2023.2. Но рабочий способ так и не был найден.

    Пришлось пока откатиться. Надеюсь не навсегда.


    1. olegchir Автор
      16.11.2023 20:36
      +4

      А ты завел тикет? Есть ссылка?


      1. mm3
        16.11.2023 20:36
        +1

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

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


  1. janvarev
    16.11.2023 20:36
    +2

    Из пресс-релиза:

    Access to the AI service is currently restricted to the territories where the OpenAI service is available. You can check the full list of territories here.

    Как всегда, что печально, Россия туда не входит.


    1. olegchir Автор
      16.11.2023 20:36
      +1

      Если они дергают API ChatGPT, то это ограничение со стороны ChatGPT. Но значит, и решение точно такое же: прокси до куда-нибудь в США.


      1. janvarev
        16.11.2023 20:36

        Скорее всего, они дергают своё АПИ.

        Не, это наверное можно решить проксей и прочими изменениями регионов, но не очень хочется.


      1. vikarti
        16.11.2023 20:36

        Если это API OpenAI - то там еще проблема с оплатой будет если не абьзить триал, с OpenAI это сложнее (нет, просто заграничной карты не достаточно).

        Хотя эта как раз эта проблема решается гораздо проще, итак уже достаточно много ИИ софта просто позволяют указать кастомный адрес OpenAI-совместимого сервера и API-ключ. Используется это далеко не только для обхода геосанкций. Достаточно в явном виде дать возможность это делать. И совместимые в том числе и облачные серверы - есть.


    1. gigimon
      16.11.2023 20:36
      +2

      т.е. то, что в РФ IDEA не купить вас не смущает? :)


      1. TimurTukaev
        16.11.2023 20:36

        Кто сказал, что не купить?)


  1. vav7
    16.11.2023 20:36
    +1

    Ну, самое интересное, но самое недоступное - AI. ЗАчем его вводить, если доступа нет (PHPStorm) уже сколько времени ? :( Использовать тот же CoPilot можно, но это странно, когда это анонсировано для самой IDE


    1. Graid
      16.11.2023 20:36

      Я в шторме уже несколько месяцев использую. Почти вся команда так же получила апрувы.


  1. itmind
    16.11.2023 20:36
    +3

    Только что вышла IntelliJ IDEA 2023.2

    Она же вышла еще в июле.


    1. olegchir Автор
      16.11.2023 20:36
      +1

      Всё так. Это ретроспективный пост в ожидании 2023.3, чтобы было с чем сравнивать. Заголовок поправил, спасибо большое.

      Интересно, что многие до сих пор не знают, что же там произошло, и какие фичи добавились. Иначе бы меня за этот неправильный заголовок ("только что вышла") смешали бы с говном сильно раньше.


  1. Dogrtt
    16.11.2023 20:36
    +6

    А оплатить лицензию из РФ по прежнему нельзя.
    Причём, когда всё началось, техподдержка отписалась, что даже из-за рубежа на отечественный аккаунт нельзя купить.
    Ну штош...


    1. divanus
      16.11.2023 20:36

      Это другое... )


  1. megamrmax
    16.11.2023 20:36

    вот бы они Copilot плагин бы переделали - ну чтоб как у Code было, а не "фиг поймешь как это работает"


  1. TimurTukaev
    16.11.2023 20:36

    Олег, а в целом тебе нравится, в какую сторону IDEA развивается в плане фичей? Мог бы прокомментировать?