Что нового в IntelliJ IDEA 2024.2

IntelliJ IDEA 2024.2 Ultimate позволяет запускать методы Spring Data JPA прямо в IDE для быстрой проверки запросов репозитория. Управлять cron-выражениями стало проще благодаря встроенным описаниям и улучшенному автодополнению. В HTTP-клиенте теперь используется движок GraalJS для выполнения JavaScript-кода. Кроме того, мы ускорили запуск IDE – теперь важные функции доступны даже во время индексации проекта. Бета-версия режима K2 для Kotlin делает работу IDE стабильнее и быстрее, а также улучшает поддержку возможностей языка.

Главное

Улучшенная поддержка Spring Data JPA
Ultimate

Мы продолжаем улучшать поддержку Spring-фреймворка в IntelliJ IDEA, и теперь вы можете запускать методы Spring Data JPA прямо в IDE. Это позволяет сразу увидеть, какой запрос будет сгенерирован методом — без запуска приложения и анализа логов. Теперь для выполнения любого метода репозитория непосредственно в консоли JPA достаточно нажать на значок на полях.

Улучшенная поддержка cron-выражений
Ultimate

Работать с cron-выражениями стало проще. При создании регулярных задач с использованием Spring, Quarkus или Micronaut рядом с cron-выражениями вы увидите описания, которые упрощают их понимание. Кроме того, автодополнение предлагает готовые примеры, которые вы можете сразу вставить и отредактировать, вместо того чтобы писать выражения с нуля.

GraalJS в HTTP-клиенте
Ultimate

В качестве JavaScript-движка в HTTP-клиенте теперь используется GraalJS. А значит вам доступны все возможности GraalJS, включая полную поддержку спецификации ECMAScript 2023, при тестировании конечных точек в HTTP-клиенте IntelliJ IDEA и при использовании JavaScript для обработки результатов в файлах .http.

Быстрый старт

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

Повышение производительности при работе с Kotlin в режиме K2
Бета

В IntelliJ IDEA 2024.2 улучшен режим K2, — новый механизм поддержки Kotlin, — который делает IDE стабильнее и быстрее, а также закладывает основу для будущих функций, связанных с Kotlin. Теперь K2 поддерживает скрипты gradle.kts, проекты Kotlin Multiplatform (KMP), все основные рефакторинги, подсветку кода, отладку и многое другое. Тестирование на исходном коде IntelliJ IDEA Ultimate показало, что режим K2 увеличивает производительность подсветки почти в два раза. Для включения режима перейдите в Settings/Preferences | Languages & Frameworks | Kotlin. Подробнее.

Взаимодействие с IDE

Улучшенное автодополнение строки целиком

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

Новый интерфейс включен по умолчанию для всех пользователей

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

Превью результатов поиска в Search Everywhere

В диалоге Search Everywhere теперь можно посмотреть превью элементов кода, которые вы ищете. Нажмите на значок Preview на панели инструментов диалога, и под результатами поиска откроется панель предварительного просмотра. Это даст вам дополнительный контекст и упростит навигацию по проекту.

Автоматическое определение настроек прокси при первом использовании

Теперь IntelliJ IDEA автоматически обнаруживает системные настройки прокси на вашем компьютере и использует их по умолчанию. Это упрощает взаимодействие с внешними ресурсами и сервисами.

Обновленные элементы управления окнами на Linux

Раньше на Linux кнопки управления окнами IntelliJ IDEA всегда были справа. Теперь их расположение соответствует системным настройкам, позволяя вам сохранить привычное оформление экрана. Мы также обновили дизайн кнопок, чтобы они лучше гармонировали с вашей операционной системой.

Улучшенный диалог Customize Main Toolbar

Мы изменили расположение и поведение элементов в диалоге Customize Main Toolbar, сделав его более структурированным и удобным. Искать, добавлять и удалять действия на главной панели инструментов стало проще.

AI Assistant

В JetBrains AI Assistant 2024.2 улучшено облачное автодополнение кода: теперь оно быстрее предлагает более точные варианты. Мы постарались лучше интегрировать автодополнение на основе ИИ в рабочие процессы IDE: теперь в предлагаемом коде есть подсветка синтаксиса и его можно принимать по частям.

Кроме того, ИИ теперь встроен в окно Terminal и помогает разрешать конфликты в системах контроля версий. Также теперь можно настраивать промты для создания документации и генерации юнит-тестов.

Подробнее об этих и других улучшениях читайте в нашем блоге.

Java и Kotlin

Улучшенное управление логами

В IntelliJ IDEA 2024.2 улучшена работа с логами для Java и Kotlin. Теперь строки и аргументы подсвечиваются, что позволяет легко находить соответствия между плейсхолдерами и аргументами. Обновленные инспекции лучше обрабатывают несоответствия в количестве параметров логгера, предлагают преобразовать System.out.println в вызовы логгера и добавить проверки перед вызовами логгера. Подробнее.

Новая инспекция для Java: Expression is compared to itself

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

Подсказка для рефакторинга Change Signature в Java

Чтобы вам было проще воспользоваться рефакторингом Change Signature, мы добавили подсказку, которая появляется рядом с измененным элементом. Нажмите на нее и подтвердите изменения — и IDE автоматически обновит соответствующие ссылки по всей кодовой базе. Это обеспечивает согласованность и снижает риск ошибок, упрощая процесс рефакторинга.

Scala

Обновленная подсветка для Scala

В этой версии вас ждет несколько улучшений в подсветке ошибок и синтаксиса. Теперь поля классов, определенные в параметрах, подсвечиваются как поля, а не как параметры. Именованные аргументы выделяются отдельным цветом, что упрощает их идентификацию. Регулярные выражения внутри Regex("...") теперь подсвечиваются так же, как и в "...".r. Мы также исправили ошибки, из-за которых корректный код иногда подсвечивался красным после рефакторинга или из-за проблем с определением типа. Подсветка обновляется по мере набора текста, и IDE быстрее убирает красную подсветку после исправления ошибок.

Расширенная поддержка Scala 3

В этом релизе улучшена поддержка Scala 3. Теперь for-comprehensions работают корректно с синтаксисом, где используется меньше фигурных скобок. Также улучшена поддержка директив экспорта и методов расширения. IDE теперь правильно обрабатывает аннотации конструкторов и предлагает значения перечислений при импорте.

Усовершенствованное автодополнение

Теперь IDE автоматически подставляет все именованные аргументы методов и предлагает варианты для литералов объединенных типов в Scala 3. Когда в коде ожидается тип перечисления, IDE теперь будет автоматически предлагать возможные значения. Эта функциональность работает для Scala 3, объединенных типов, ADT и перечислений в Scala 2, а также перечислений в Java, упрощая написание кода за счет предоставления более подходящих подсказок.

Другие улучшения

Содержимое StringBuilder теперь отображается в отладчике как обычная строка. Кроме того, IDE теперь дает советы по работе со Scala, а при импорте проектов sbt отображается прогресс загрузки библиотек. Также в поддержку Scala теперь включены функции Grazie для проверки орфографии и грамматики в комментариях.

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

Подсветка ошибок на базе компилятора теперь работает лучше. Устаревшие данные об ошибках не применяются, если файл был изменен. Кроме того, IntelliJ IDEA теперь поддерживает диагностику ошибок компилятора Scala и предлагает исправления, которые можно легко применить, как и другие быстрые исправления.

Редактор кода

Поддержка формул в Markdown-файлах

Теперь IntelliJ IDEA отображает математические формулы в Markdown-файлах. Работая с Markdown, используйте $, чтобы добавить формулу на строке, и $$ для блоков кода с формулами.

Липкие строки с учетом языка

Теперь вы можете выбрать, для каких языков отображать закрепленные строки. Сделайте это в настройках Settings/Preferences | Editor | General | Sticky Lines или в контекстном меню (вызывается правым кликом по закрепленной строке в редакторе).

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

Фокус на методах проекта в профилировщике
Ultimate

Мы упростили поиск узких мест производительности при помощи встроенного профилировщика. Теперь IntelliJ IDEA акцентирует внимание на вашем коде, затемняя и сворачивая вызовы библиотек в профилировщике. Это помогает сосредоточиться на вызовах, которые больше всего влияют на производительность, фильтруя менее важные методы. Если вам нужен подробный обзор вызовов библиотек, разверните скрытые вызовы, и вы увидите всю их последовательность и время выполнения. Нажмите на ссылку рядом с вызовом или на значок + для подробной информации.

Запуск и отладка

Графики производительности в окне Run

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

Улучшенная отладка Kotlin

В IntelliJ IDEA 2024.2 значительно улучшен процесс отладки Kotlin. Теперь можно использовать Step Over для обхода циклов forEach и захода в лямбда-функции без пропуска важного кода. Больше не нужно помнить про использование Step Into для встроенных функций, что помогает не упустить критические части программы. Теперь можно пошагово проходить через forEach, let иfilter, как через обычные циклы и условия.

Визуализация строковых переменных для JSON, XML и других форматов

Просмотр и отладка длинных строк со сложными форматами данных стали проще. Обновленный отладчик показывает корректно отформатированные строки с JSON, XML, HTML, JWT и URL. Просто нажмите View рядом с переменной, и отладчик сам выберет подходящий формат для отображения.

Покрытие изменений в текущей функциональной ветке

В IntelliJ IDEA 2024.2 стало проще проверять покрытие кода тестами локально — без использования CI/CD-пайплайна. В окне Coverage теперь отображаются только классы, измененные в текущей ветке, что упрощает проверку покрытия последних изменений. Чтобы просмотреть покрытие всего проекта, отключите опцию Show Only Modified Classes.

Системы сборки проектов

Упрощенная работа с Gradle-скриптами

В IntelliJ IDEA 2024.2 добавлены новые функции для работы с Gradle-скриптами сборки. Теперь можно легко переходить к Gradle-плагинам, объявленным в билд-скриптах, а также между каталогами версий и скриптами в libs.versions.toml. Кроме того, можно запускать зарегистрированные задачи прямо из редактора.

Инкрементальная синхронизация Maven-проектов

Теперь повторная синхронизация Maven-проектов происходит быстрее. После первоначальной полной синхронизации IDE обновляет только те части проекта, в которых обнаруживает изменения, а не весь проект.

Действие для очистки кеша системы сборки

Теперь вы можете очистить кеш системы сборки, чтобы быстро решить проблемы со структурой проектов Maven, Gradle или sbt, вызванные, например, неправильным импортом данных. Для этого перейдите в File | Cache Recovery | Invalidate Build System Caches and Re-sync.

Системы контроля версий

Разрешение конфликтов в выражениях импорта

Теперь можно легко разрешать конфликты в импортируемых блоках для Java и Kotlin. В окне Merge нажмите на значок шестеренки и выберите Resolve Conflicts in Import Statements. Также можно настроить автоматическое разрешение конфликтов в разделе Settings/Preferences | Tools | Diff & Merge.

Теги в виджете Version Control

Теперь в виджете Version Control есть отдельный узел для тегов, чтобы их было легче просматривать. Он отображается по умолчанию, но вы можете его скрыть, нажав на значок шестеренки и сняв флажок Show Tags.

Обновленное окно Log

Теперь все настройки окна Log собраны на одной странице, которую можно найти в разделе Settings/Preferences | Version Control | Log или в новом выпадающем меню на панели инструментов окна Log. Вы также можете открыть Git-лог в виде вкладки в редакторе для удобной работы и навигации по коммитам. Эту опцию вы также найдете в выпадающем меню на панели инструментов окна Log.

Переработанное окно локальной истории

Мы модернизировали интерфейс диалога Local History. Кроме того, при вызове для каталога рядом со списком изменений теперь отображается дифф, помогая вам разобраться в изменениях. Чтобы вам было проще следить за изменениями в больших проектах, действие Local History теперь можно вызывать сразу для нескольких файлов или папок. В окне проекта выделите нужные файлы или папки и выберите Local History | Show History, чтобы просмотреть историю их изменений.

Улучшенное дерево коммитов на вкладке Log

Мы улучшили цветовую кодировку и расположение веток в дереве коммитов на вкладке Log в окне Git. Теперь важные ветки всегда находятся слева и сохраняют свои цвета — так их удобнее отслеживать.

Опции First Parent и No Merges в Graph Options

Мы добавили новые опции для упрощения просмотра истории веток в Git. Используйте опцию First Parent, чтобы сосредоточиться на основных изменениях, скрывая отдельные коммиты из слияний. Либо вы можете полностью исключить коммиты слияния, выбрав опцию No Merges. Обе опции вы найдете под значком Graph Options в окне Git, и вам будет удобнее следить за изменениями в ветках.

Терминал

Новый терминал
Бета

В версии 2024.2 мы представляем новый терминал с расширенной функциональностью. В числе главных улучшений — генерация команд при помощи ИИ: достаточно описать задачу на естественном языке, и ИИ создаст команду. Кроме того, теперь можно настроить отображение команд в одну или две строки для экономии места и удобства чтения, а также появилась поддержка настроек пользовательских запросов командной оболочки. Мы также улучшили автодополнение псевдонимов и веток Git, пакетов npm, PHP-команд и интерфейса командной строки Ruby.

Подробнее читайте в нашем блоге.

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

Автодополнение для бинов Micronaut и Quarkus
Ultimate

В IntelliJ IDEA Ultimate теперь работает автодополнение бинов в приложениях Quarkus и Micronaut. Начните вводить имя бина и выберите его среди вариантов автодополнения. IDE сама добавит параметр конструктора или поле с аннотацией @Inject в зависимости от вашего стиля кода.

Расширенная поддержка JPA
Ultimate

Мы добавили несколько новых инспекций для работы с JPA. Они помогают находить и исправлять проблемы, которые могут замедлить приложение или вызвать ошибки при использовании аннотаций Lombok. IDE также проверяет, все ли параметры указаны в репозиториях Spring Data JPA и правильно ли настроены ассоциации, и предотвращает случайные удаления, обнаруживая параметр CASCADE для ассоциаций @ManyToMany.

Режим разработки Ktor в конфигурациях запуска
Ultimate

В IntelliJ IDEA 2024.2 можно легко включить режим разработки Ktor в конфигурациях запуска. При создании новых конфигураций он выбран по умолчанию, и им можно управлять через обновленный диалог Run/Debug Configurations. Мы также сделали интерфейс этого диалога более удобным для пользователей Ktor.

Триггеры для Spring-методов @Scheduled при отладке
Ultimate

В IntelliJ IDEA 2024.2 Ultimate можно отлаживать асинхронные методы @Scheduled в Spring Boot. Больше не нужно вручную настраивать расписание и ждать запуска метода. Просто поставьте точку останова и запустите метод прямо из IDE в любое время.

Поддержка Jakarta Data
Ultimate

В IntelliJ IDEA Ultimate 2024.2 добавлена поддержка Jakarta Data. Теперь IDE предоставляет помощь в написании кода и инспекции репозиториев, включая автодополнение и проверку имен методов на основе модели данных, а также проверку параметров на основе имен методов. Для упрощения навигации репозитории Jakarta Data отображаются в окне Beans. Кроме того, добавлена поддержка языка запросов Jakarta с подсветкой синтаксиса, проверкой и автодополнением запросов на основе модели данных.

Расширенная поддержка Terraform
Ultimate

Мы значительно расширили функции помощи в написании кода для Terraform. Теперь доступно автодополнение строки целиком, улучшены контекстное автодополнение, подсветка синтаксиса и обнаружение ошибок с быстрыми исправлениями. Добавлена быстрая документация с подсказками при наведении на элементы, чтобы вы могли мгновенно получать нужную информацию о Terraform, не отвлекаясь на ее поиск.

Улучшения HTTP-клиента
Ultimate

Мы внесли важные обновления в HTTP-клиент. Теперь с помощью функции XPath можно напрямую извлекать элементы из XML- и HTML-документов. Кроме того, доступны новые методы, которые избавляют от необходимости ручного парсинга XML.

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

Помимо этого, мы упростили работу с API, которые требуют специальных методов. Для работы с такими API, вы можете добавлять пользовательские методы с помощью быстрого исправления или указывать их через запятую в разделе Settings/Preferences | Tools | HTTP Client.

Удаленная разработка и совместная работа

Упрощенное управление настройками при удаленной разработке
Ultimate

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

Обратная переадресация портов при удаленной разработке
Ultimate

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

Выбор объекта при демонстрации экрана в Code With Me

Теперь во время демонстрации экрана в Code With Me вы можете выбирать, что показывать: весь экран или только определенное окно. Раньше по умолчанию транслировались все экраны и окна без возможности выбора.

Упрощенный запуск сессий Code With Me

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

Всплывающее окно для завершения сессии

Если никто не присоединился к вашей сессии Code With Me в течение 30 минут, появится всплывающее окно с предложением завершить сессию, оставить ее активной или закрыть окно. Если ничего не предпринимать в течение трех минут, сессия завершится автоматически.

Инструменты для работы с базами данных

Возможности AI Assistant
Ultimate

В этом релизе мы добавили новые функции AI Assistant для работы с базами данных. Теперь вы можете генерировать SQL-код прямо в редакторе с помощью текстового запроса, нажав Generate Code with AI. Код можно принять, сгенерировать заново или скорректировать и задать дополнительные вопросы в чате с искусственным интеллектом. AI Assistant поможет и при редактировании таблиц: попросите его, например, заменить все VARCHAR на CHAR. Он также умеет объяснять и исправлять разные проблемы, связанные с SQL. Вы можете прикрепить схему базы данных к ИИ-чату, введя имя схемы после #.

Настраиваемый импорт данных при помощи скриптов-загрузчиков
Ultimate

Теперь можно импортировать данные из табличных файлов (Excel, JSON, Parquet и shapefile) с помощью настраиваемых скриптов. Просто перетащите файл из окна Project в схему в проводнике баз данных и задайте настройки в диалоге Import. Также можно открывать эти файлы в редакторе данных одним кликом в окне Project. Чтобы отключить эту функцию, перейдите в Settings/Preferences | Advanced Settings | Open file as table if detected by scripted loader. Вы можете создать свои загрузчики и сохранять их в специальной директории: Scratches and Consoles | Extensions | Database Tools and SQL | data | loaders.

Действие Related Rows на плавающей панели инструментов
Ultimate

Теперь можно легко находить строки, связанные с заданной ячейкой: выделите ее и нажмите на значок Related Rows. Вы можете настроить эту функцию на плавающей панели инструментов через опцию Customize This Toolbar в меню с тремя точками. Настройки действия Related Rows теперь находятся в разделе Settings/Preferences | Advanced Settings. Опция Navigate and select first показывает все строки, выделяя первые упомянутые, а Navigate and filter all показывает только связанные строки.

Автодополнение значений
Ultimate

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

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

Быстрый запуск и отладка TypeScript-файлов
Ultimate

Теперь можно запускать и отлаживать TypeScript-файлы без лишних настроек. Вы можете делать это прямо из контекстного меню файла, виджета запуска или конфигурации Current File.

Интеграция с Prettier работает по умолчанию
Ultimate

В IntelliJ IDEA Ultimate 2024.2 Prettier автоматически подключается в новых проектах, если в корневом package.json есть прямая зависимость prettier и на том же уровне находится файл конфигурации Prettier. Это упрощает настройку и обеспечивает автоматическое включение интеграции с Prettier.

Обновленная поддержка веб-фреймворков
Ultimate

B IntelliJ IDEA Ultimate теперь проще работать с фреймворками, использующими для маршрутизации файловую систему. IDE обнаруживает пути маршрутизации на основе файловой системы вашего проекта, обеспечивая автодополнение и навигацию для соответствующих атрибутов в компонентах, реализующих ссылки в Next.js, Nuxt, SvelteKit и Astro. Кроме того, добавлена поддержка новых сниппетов и тегов рендеринга для Svelte 5. А еще IntelliJ IDEA поддерживает Vue Language Service v2 и протокол языкового сервера (LSP) Astro, что улучшает автодополнение и общее удобство взаимодействия с IDE.

JetBrains Runtime

Переход на JBR21

Мы переходим с JetBrains Runtime 17 (JBR17) на JetBrains Runtime 21 (JBR21). Начиная с IntelliJ IDEA 2024.2, все обновления IDE будут включать JBR21, обеспечивая лучшую безопасность, производительность и поддержку рендеринга Wayland для Linux.

Другое

Встроенная поддержка китайского, корейского и японского языков

Носителям китайского, корейского и японского будет проще пользоваться IDE, когда она говорит с ними на одном языке. Поменять язык интерфейса можно в настройках: Settings/Preferences | Appearance & Behavior | System Settings | Language & Region.