Только что вышла IntelliJ IDEA 2023.2. В этом релизе в IDE появилась куча интересных фичей и важных улучшений.

Вы можете скачать последнюю сборку с официального сайта, или из бесплатного приложения Toolbox, или из snap-пакетов для Ubuntu.

Этот релиз IntelliJ IDEA 2023.2 представляет вам AI-ассистента, вооруженного набором инструментов машинного обучения. IntelliJ Profiler показывает подсказки в редакторе, делая профилирование более интуитивным и иформативным. Еще, в этом релизе появилась интеграция с GitLab.

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

Кроме того, в этот четверг в Питере будет встреча Javawatch, посвященная Java 21. Я прочитаю мини-доклад минут на 30 о новых фичах, и потом мы сможем все вместе собраться и за кружкой пива это обсудить. Анонс события в телеге, обсуждение в чате. Я бывший PMM в JetBrains Big Data и тимлид в Remote Development/Projector, а сейчас работаю над российским дистрибутивом Java - Axiom JDK.

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

  • В IntelliJ IDEA 2023.2 появился AI Assistant, который делает на основе машинного обучения штуки вроде автоматического написания комментариев, подсказки имен, генерации текста коммитов в гит, и тому подобное. Количество полезных фичей пока довольно ограниченное. Для начала работы, нужно установить плагин под названием AI Assistant и залогиниться в сервис JetBrains AI. Подробнее написано вот в этом посте.

  • IntelliJ Profiler научился показывать подсказки о перформансе прямо в редакторе, и это упрощает профилировку, резульаты проще интерпретировать, они подсвечены цветом в гаттере. Это достаточно очевидное изменение, и нет никаких разумных объяснений, почему этого не было сделано раньше.

  • Появилась интеграция с GitLab, как-никак это одна из самых популярных систем. Конкретно, теперь можно делать мердж-риквесты прямо из IDE. Подробности.

User Experience

  • Search Everywhere (вызывается через быстрое нажатие шифт-шифт или шифт-шифт-шифт, вы ведь в курсе об этой штуке?), теперь умеет искать текст.

  • Проектам можно назначать уникальные цвета и иконки, чтобы различать их внутри воркспейса. Ждём анимированные эмодзи :)

  • Меню "гамбургера" на основной панели инструментов пернеработали для Windows и Linux. Его элементы теперь отображаются горизонтально поверх панели, когда вы нажимаете кнопку гамбургера. Появилась опция автоматически превращать это меню в отдельный тулбар.

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

  • Для пользователей нового интерфейса (так называемого New UI), теперь можно переключиться в тему Light with Light Header. В ней наконец-то цвета рамочек и всплывающих окон соответствуют цвету темы, и черный цвет не выжигает глаза. Пользователи New UI всё ещё должны страдать, но теперь меньше.

  • Используя полноэкранный режим New UI на mac OS, элементы управления окном отображаются как часть основной панели инструментов, а раньше это была плавающая панель.

  • В диалоге инспеций (Settings / Preferences | Editor | Inspections), реализована подсветка синтаксиса для шаблонов кода.

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

  • В панели Project, появилась опция Open Directories with Single Click, благодаря которой навигация по проекту ощущается более быстрой и отзывчивой.

  • Расширены возможности настройки главной панели New UI. Выпадающее меню позволяет быстро выбирать действия, которые хочется добавить на панель.

  • Обновленная секция Settings/Preferences | Plugins включает набор стандартных плагинов, список которых автоматически определяется в зависимости от специфики вашего проекта.

  • Переделан интерфейс для запуска и отладки в планели Services, чтобы ее внешний вид совпадал с виджетом Run/Debug.

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

Java

  • Улучшены инспеции и их количество увеличилось, это позволяет поддерживать высокое качество кода и лучше находить возможные ошибки. Больше об улучшениях в анализаторе кода можно почитить вот в этом посте в блоге.

  • IntelliJ IDEA 2023.2 научилась лучше подсвечивать и перемещаться по форматирующим строкам.

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

  • IntelliJ IDEA 2023.2 может точно определить расположение метода в стектрейсе (текстовом отчете о нем), даже если номера строк недоступны или неправильно отображаются.

  • IntelliJ IDEA Ultimate лучше анализирует конкатенацию и интерполяцию SQL в Java и Kotlin, определяет потенциально опасные запросы, и тем самым защищает код от SQL-инъекций.

Scala

  • IntelliJ IDEA 2023.2 научилась лучше работать со Scala 3, включая поддержку enum-ов, улучшенный декомпилятор TASTy, и улучшенную отладку. В дополнение к этому, Universal Apply Methods из Scala 3 теперь нормально автодополняются, в редакторе появилась поддержка IArray и синтаксиса "fewer braces". Поддержка Scala 3 всё ещё крайне всратая и неюзабельная, но другой поддержки всё равно нигде нет, включая другие IDE.

  • Улучшилась поддержка Scala Build Tool (sbt).

  • Исправлено несколько багов в выводе типов.

  • Компилятором по-умолчанию выбран Zinc, поэтому заработала инкрементальная компиляция фичей из Scala 3, включая inline methods.

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

  • Улучшилось отображение ScalaDoc Quick Documentation. Подсвечиваются аннотации, кейворды и литералы. Для подсветки используется текущая цветовая тема, списки расширенных трейтов и классов выделяются на отдельные строки, подсвечиваются ключевые слова из Scala 3.

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

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

Run/Debug

  • При отладке реактивных приложений, можно вычилслять значения watch-ей и локальных переменных для типов Mono и Flux. Забавно, что в оригинальном чендлоге от JetBrains забыли написать, к какому языку это улучшение относится. Оставим это в качестве упражнения для внимательного читателя.

  • Автотестирование теперь совместимо с системами сборки Maven, Gradle и JPS.

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

  • Можно коммитить отдельные строки кода. Гениально.

Профилировщик

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

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

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

Весь список изменений ниже относится только к платной версии - IntelliJ IDEA Ultimate 2023.2.

(Как в популярном анкедоте Нет ножек - нет мультиков. Простите, вырвалось. 29 баксов или почти 3 тысячи рублей в месяц, между прочим).

  • Приложения для Tomcat можно запускать и отлаживать на Windows Subsystem for Linux (WSL).

  • gRPC запросы через Transport Layer Security (TLS) можно посылать через HTTP Client.

  • HTTP Client понимает спецификации Swagger и OpenAPI, и делает автодополнение внутри текста JSON-запросов.

  • Улучшена поддержка конфигураций Swagger Codegen. Диалог Edit Swagger Codegen Configuration проще настраивается, а конфигурации запуска доступны прямо из гаттера, без необходимости в проведеии дополнительных настроек.

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

  • Добавлено автодополение ключей в JSON для JavaScript-кода.

  • Можно переиспользовать общий JS-код для разных обработчиков запросов HTTP Client, достигается использованием импорта модулей.

  • Прямо в IDE можно посмотреть предпросмотр файлов PDF и HTML, которые получаются в результате отработки запросов HTTP Client.

  • HTTP Client CLI научилось работать с GraphQL API и поддерживаеть соединения с сервисами поверх WebSocket.

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

  • Бины Spring Configuration не требуют отдельного процессора аннотаций, поэтому автодополнение и валидация свойств и YAML-коинфрураций работает сразу и из коробки.

  • Поддержка Spring AOP заработала вместе с Kotlin.

  • Упростилась работа со спецификацией AsyncAPI, потому что IDE научилось в валидацию схемы и автодополнение ссылок, в панелях Endpoints и Editor Preview.

  • Добавлено несколько инспеций для борьбы с "Norway problem", т.е неправильной интерпретации ключей в YAML-файлах, которые похожи на булевские переменные.

Docker

  • Появился предспросмотр файлов внутри image layers.

  • Теперь можно запускать Docker-конфигурацию до любой другой Run/Debug конфигурации, добавив её в блок Before Launch.

Kubernetes

  • В одном и том же проекте теперь можно иметь несколько kubeconfig файлов, что позволяет проще управлять несколькими кластерами или средами разработки.

  • Внутри панели Services появилась возможность смотреть логи деплойментов Kubernetes.

Инструменты сборки

  • Поддержка наисвежайшего Maven 4.0.0-alpha. Непонятно, кому это ужно, но ни в чем себе не отказывайте.

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

  • IntelliJ IDEA Ultimate 2023.2 умеет лучше автоматически форматировать код на JavaScript и TypeScript.

  • Заработала поддержка CSS nesting.

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

  • Для React Hooks добавлено несколько Live Templates.

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

  • Упрощена настройка статического анализа, благодаря интеграции с JetBrains Qodana - умным движком статического анализа, созданного для работы со множеством пайплайнов CI/CD. Благодаря этому повяляется два преимущества. Во-первых, анализ настраивается в два клика, можно будет смотреть ошибки по всему проекту, ставить quality gates для своей любой системы CI/CD. Во-вторых, можно смотреть результаты анализа, запущенного на сервере, прямо внутри IDE. Подробней всё описано здесь.

Базы данных

  • Можно подключать Redis Cluster, и набор фичей внутри IDE будет такой же, как если бы вы работали с отдельным сервером.

  • Переделан визуальный интерфейс диалога миграции схемы.

  • На страничке Data Editor and Viewer появилось поле Time zone, чтобы настраивать тот часовой пояс, в котором будет отображаться результат работы datetime.

  • Реализована поддержка внешних баз данных и datashares в Redshift.

Полезные мелочи

  • LSP API позволяет работать со внешними серверами Language Server Protocol. Подробнее.

  • Плагин Big Data Tools распилен на кусочки. Теперь не нужно ставить огромный монолит, а можно поставить только то, что реально нужно. Доступные кусочки: KafkaSparkFlinkRemote File SystemsBig Data File ViewerZeppelin.

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

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

  • Значение хипа (-Xmx пожираемой Идеей оперативной памяти) по-умолчанию увеличилось до 2Gb. Типичная IntelliJ IDEA. Кстати, вы уже купили новый макбук?

  • Windows 7 больше не поддеерживается. Обновляйтесь до Windows 10 или страдайте.

Это был весь список полезных улучшений в IntelliJ IDEA 2023.2. Есть еще полный список, он есть в Release Notes, но зачем его читать обычному человеку (не разработчику IDE) - не ясно.

Ваш фидбек крайне нужен и полезен сообществу. Автор этого поста на Хабре всячески советует пройти в наш чат в Телеграме (tg:javawatch_chat) и поделиться возникшими идеями и болями. Также, можно подписаться на наш новостной канал (tg:javawatch) и Twitter (twi:javawatchru). И не забывайте зайти на митап по Java 21 в Failover Bar в Санкт-Петербурге (все анонсы Failover Meetup Space можно посмотреть в телеге tg:failoverbar).

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


  1. 13werwolf13
    29.07.2023 15:18
    +8

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

    для удобства сделали хуже.. афигенно.


    1. olegchir Автор
      29.07.2023 15:18
      +10

      Строго говоря, в рамках текущей парадигмы оно имеет какой-то смысл. Похоже, они хотят сделать пародию на VSCode. Из предположения, что именно чистый легкий интерфейс VSCode является причиной его успеха.

      У меня есть другое предположение. Убогий интерфейс VSCode - это скорее минус, чем плюс. Он стал популярным не благодаря нему, а вопреки. Просто это первый бесплатный редактор с кучей плагинов, вменяемым уровнем поддержки забесплатно и опенсорсно, и скопированной из Идеи функцией Search Everywhere которая ушла в массы. Который не садит батарейку ноута, что немаловажно.


      1. markmariner
        29.07.2023 15:18
        -1

        Ну для меня как раз простота интерфейса и была плюсом. А ещё было плюсом то, что VS Code не ест всю оперативку, сколько бы её не было, а потом вылетает, как продукты JetBrains. А, ещё и курсор передвигается сразу, а не как в IntelliJ IDEA через 50мс после того, как нажмёшь на кнопку.

        По крайней мере, именно так IntelliJ IDEA работала на моём рабочем компьютере в 2019 году с топовым i7 и 32 гигабайтами оперативной памяти.


        1. shmutz
          29.07.2023 15:18
          +3

          >ест всю оперативку

          >32 гигабайтами оперативной памяти

          Какие-то прохладные истории. Ну или из разряда - я открыла 10 проектов одновременно, а оно тормозит.


          1. markmariner
            29.07.2023 15:18

            Сколько оперативки использует IDEA прямо сейчас на вашем компьютере в вашем проекте?


            1. Enverest
              29.07.2023 15:18
              +3

              Открыл 2 проекта в IDEA - вот процессы в диспетчере задач:

              1) 4.2 GB

              2) 2.1 GB

              3) 323.6 MB

              4) 234.7 MB

              5) 121.7 MB

              6) 114.7 MB

              Когда запускаю тест - запускается ещё один процесс на 2.2 GB.

              Работаю со Спарком, на Убунту. На старом ноутбуке 16 ГБ не хватало для комфортной работы, приходилось время от времени закрывать браузер :)

              С компом на 32 ГБ памятью - никогда в память пока не упирался.


            1. shmutz
              29.07.2023 15:18
              +1

              склонировал apache-james, оно намного жирнее моих микросервисов - идея ест 1.8-2ГБ

              попробуй в консоли mvn clean package. я лично только всё так собираю. Ну и мавен и тем более какашный грэдл уже мало связаны с "ой, идея жрёт 100500 мегабайтов111"

              у меня на ноуте 8ГБ, 2ГБ браузер ест, 3-4 free.

              >Работаю со Спарком

              ну так про работу IDE речь или про что? Я писал прожки, которым и 256ГБ не хватало, как это к теме относится?

              То что у тебя 6 процессов java уже пруфает, что ты некомпетентен. И какашный грэдл любишь )

              >на Убунту

              жизненное наблюдение - все линуксострадальцы сидят в убунте.


      1. 13werwolf13
        29.07.2023 15:18
        +3

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


        1. olegchir Автор
          29.07.2023 15:18
          +1

          Баг (или фича?) в том, что Идея не использует не использует те же самые парадигмы построения интерфейса, что есть у Gtk или Qt. Ни старый UI, ни тем более - новый. Visual Studio Code, в общем, тоже не использует. Можно украсть что-то очень минорное, типа базового фона окна, и всё. Заматчить нечто, что написано в стиле JS-фронтенда на Gtk окружение - это заявка на нобелевку :-) Если ты сам сможешь придумать такой коммит, который бы впилил Gtk тему в безумную мешанину интерфейсов внутри IDEA, наверняка все бы только порадовались, попробуй. А без этого все эти попытки сделать "как в Gtk" одинаково убогие, типа что-то есть, что-то нет, в целом выглядит как говно.


          1. 13werwolf13
            29.07.2023 15:18

            Баг (или фича?)

            не баг и не фича, банальная лень.

            Если ты сам сможешь придумать такой коммит, который бы впилил Gtk тему в безумную мешанину интерфейсов внутри IDEA

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

            А без этого все эти попытки сделать "как в Gtk" одинаково убогие, типа что-то есть, что-то нет, в целом выглядит как говно.

            потому что надо не "как в" а "на" и не GTK а Qt.

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


            1. isden
              29.07.2023 15:18
              +2

              он выглядит чужеродно и противно

              Чистая вкусовщина. Лично мне нравится. Темную тему вообще очень круто сделали (я сейчас про подбор гаммы цветов - темную тему очень легко испоганить).


      1. ritorichesky_echpochmak
        29.07.2023 15:18

        Хочется компромисса между Zen Mode и полноценной IDE, а отвлекаться на рюшечки которые 90% времени не используются не хочется, как и на мышь. Ctrl+Shift+A и вообще клавиатурные биндинги - наше всё и, кажется, JB регулярно об этом намекает. Ещё бы шрифты и темы немножко подтянуть, а то как-то глаза к концу дня на дефолтах устают - цены бы им не было


        1. olegchir Автор
          29.07.2023 15:18
          +2

          Разные люди, разные интересы. Например, я вообще никакими клавиатурными сочетаниями не пользуюсь, и совершенно всё нажимаю мышкой. Поэтому редакторами без интерфейса (типа vi или emacs) пользоваться не могу вообще. Старый UI Идеи был достаточно хорошим компромиссом для меня. VSCode с необходимостью всё нажимать на клавиатуре раздражает неимоверно.


          1. apro
            29.07.2023 15:18
            +2

            Поэтому редакторами без интерфейса (типа vi или emacs)

            У emacs есть интерфейс (на основе gtk) из коробки:
            https://i.ytimg.com/vi/XvVqtUfJoTI/maxresdefault.jpg


      1. ris58h
        29.07.2023 15:18

        Похоже, они хотят сделать пародию на VSCode.

        Для этого есть Fleet.


        1. olegchir Автор
          29.07.2023 15:18

          Есть. А зачем он есть? Чтобы что?


          1. ris58h
            29.07.2023 15:18
            +2

            Чтобы "сделать пародию на VSCode".


    1. qirsam
      29.07.2023 15:18
      +1

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


  1. olegchir Автор
    29.07.2023 15:18
    +18

    Ребят, а что случилось с Хабром? Если IntelliJ IDEA теперь не соответствует тематике, то что же тогда вообще соответствует?


    1. Vest
      29.07.2023 15:18
      +9

      Как обычно, новости про Х, что-нибудь про FraudGPT, и моя любимая, сколько приставок продали Sony и Microsoft за последнюю субботу.

      ¯\_(ツ)_/¯


      1. olegchir Автор
        29.07.2023 15:18
        +3

        Я знаю такой сайт, это же DTF! Там есть еще еженедельный рейтинг продажи игр по Британии :)


    1. Dancho67
      29.07.2023 15:18
      -2

      Хабр перестал быть, чем был до начала волны вкатунов. Давно пора смириться с тем, что Хабр щас это платформа для одвода пара у тех, кто ниасил, с редкими исключениями в виде технических статей для интересующихся.


      1. olegchir Автор
        29.07.2023 15:18
        +5

        Нууу... давай постараемся, чтобы в блогах Java/JS/Devops была годнота, которая интересна не только вкатунам :) Для этого ее надо писать!


    1. apro
      29.07.2023 15:18
      +1

      Возможно это отголоски той истории, когда JetBrains перестала продавать свои IDE в РФ,
      а потом опубликовала статью на хабре с описанием новой версии одной из платных IDE и эту статью заминусовали.


      1. olegchir Автор
        29.07.2023 15:18
        +1

        Всячески не одобряю этот поступок JB, в смысле, их уход из России. Неудивительно, что заминусовали. Но я остался здесь и кажется, имею право постить, что захочу про их продукты :)


  1. Akuma
    29.07.2023 15:18

    Спасибо за статью. Пользуясь случаем, а не в курсе, если оплатить сейчас лицензию на месяц, обновиться и потом не платить, оно будет работать на новой версии или придется откатываться до СВО-версии?


    1. olegchir Автор
      29.07.2023 15:18
      -2

      Есть куча сервисов для оплаты зарубежных услуг. К сожалению, блог Программирование - это не то место, где их стоит обсуждать и делать им рекламу. В Гугле много есть про это, просто напиши запрос "как оплатить зарубежные сервисы" или типа того


  1. jreznot
    29.07.2023 15:18
    +4

    Забавно, что в оригинальном чендлоге от JetBrains забыли написать, к какому языку это улучшение относится.

    К любому JVM, визуализатор отладки один и тот же для всех результатов выражений полученных jdwp. Точно работает Java и Kotlin, 99% работает и Groovy


    1. olegchir Автор
      29.07.2023 15:18

      Пошел смотреть, кому высылать подарочный лайк, а это Юрий Артамонов. Это читерство :3


  1. quaer
    29.07.2023 15:18
    +1

    Можно запустить на компе пару виртуалок и Eclipse и спокойно писать код. Но вот стоит запустить IntelliJ и все ресурсы компа сожраны. Правда, последний Eclipse тоже поломали немного: теперь рандомно вдруг перестаёт видеть импорты классов из пакетов jdk. Как кстати дела с NetBeans?


    1. ris58h
      29.07.2023 15:18

      Автокомплит и прочие фишки IDE будут или спокойно писать код - это ручками как деды?


      1. quaer
        29.07.2023 15:18
        +1

        Автокомплит и прочие фишки - это как раз и есть IDE. IntelliJ всего лишь одна из них.