В IntelliJ IDEA 2024.3 появилось много новых полезных функций, которые делают разработку еще удобнее. Теперь IDE показывает логическую структуру кода, упрощает отладку приложений на Kubernetes и дает доступ к логам всего Kubernetes-кластера. Кроме того, мы официально завершили бета-тестирование режима K2. Подробнее об этих и других нововведениях читайте далее.
Теперь в окне Structure отображается логическая структура кода вместе с привычной физической. Это позволяет видеть не только классы, методы и поля, но и связи между компонентами проекта. Например, открыв контроллер в Spring Boot, вы увидите его конечные точки и подключенные компоненты приложения. Новое представление помогает лучше понимать структуру проекта и упрощает навигацию по коду, позволяя ориентироваться не только на использования, но и на логические связи.
Отладка приложений на Kubernetes стала еще удобнее. Нажмите три точки рядом с кнопкой Debug и выберите Add Tunnel for Remote Debug, чтобы активировать туннель для удаленной отладки. Это фактически сделает ваш компьютер частью кластера Kubernetes, позволяя локально заменить реальный под своим окружением и отлаживать микросервисы с помощью привычных инструментов. Остальные микросервисы будут взаимодействовать с вашим компьютером как с настоящим подом, с полным доступом ко всей сети кластера. Даже отладчики, не поддерживающие Kubernetes, работают без проблем. Кроме того, в окне Services добавлен раздел Forward Ports, который упрощает настройку перенаправления портов.
Теперь в IntelliJ IDEA можно просматривать логи всего кластера Kubernetes с поддержкой потоковой передачи и поиска по шаблонам — это удобно для разработчиков, команд DevOps и SRE. IDE собирает события со всех подов, узлов и сервисов, позволяя быстро находить проблемы без ручного поиска по логам. Потоковая передача в реальном времени позволяет оперативно проводить диагностику, а сопоставление шаблонов автоматизирует обнаружение важных событий и ошибок, таких как нехватка памяти или необычная сетевая активность. Подробнее об этой функции читайте в нашем блоге.
В IntelliJ IDEA 2024.3 режим K2 официально вышел из бета-версии: он стабилен и полностью готов к использованию. K2 повышает надежность анализа кода, эффективность потребления памяти и общую производительность IDE. Теперь в нем лучше поддерживается Java и доступны все новые возможности Kotlin 2.1. Для включения режима перейдите в Settings/Preferences | Languages & Frameworks | Kotlin.
В IntelliJ IDEA 2024.3 можно взаимодействовать с AI Assistant прямо в редакторе. Просто напишите запрос обычным языком, и AI Assistant сразу же сгенерирует нужный код, отметив изменения фиолетовым цветом. При этом AI Assistant учитывает контекст, автоматически добавляя связанные файлы и символы для более точной генерации кода. Эта функция поддерживается в файлах Java, Kotlin, Scala, Groovy, JavaScript, TypeScript, Python, JSON и YAML и доступна всем подписчикам AI Assistant.
В этом обновлении мы упростили управление контекстом, который AI Assistant использует для своих предложений. Переработанный интерфейс позволяет легко управлять всеми элементами, включенными в контекст. Открытый файл и выделенный в нем код автоматически включаются в контекст, и вы можете легко добавлять или удалять файлы по своему усмотрению. Кроме того, теперь можно добавлять общие инструкции для проекта, чтобы ваши указания для AI Assistant учитывались по всей кодовой базе.
Теперь можно выбрать предпочтительную модель для чата с ИИ: Google Gemini, OpenAI или локальную модель на вашем устройстве. Это позволяет адаптировать чат под ваши потребности и сделать работу с ИИ более удобной.
В версии 2024.3 механизм анализа потоков данных лучше обрабатывает ситуации, когда ссылки могут указывать на один и тот же объект. Это уменьшает количество ложных срабатываний в инспекциях и повышает точность анализа кода. Улучшения касаются как Kotlin, так и Java.
Теперь форматер в IntelliJ IDEA оставляет пустые строки между аннотациями и полями, что помогает улучшить читаемость кода в JPA-сущностях. Раньше такие строки по умолчанию удалялись. Соответствующую настройку можно найти в разделе Settings | Editor | Code Style | Java | Blank Lines.
В режиме K2 IntelliJ IDEA поддерживает две экспериментальные функции Kotlin 2.1. Теперь можно использовать выражения break
и continue
внутри лямбд, передаваемых в качестве аргументов в inline-функции. Интерполяция строк, которые начинаются со знака доллара, стала проще: больше не нужно применять обходные решения вроде ${'$'}
. Это особенно удобно при работе с JSON-схемами.
Теперь в IntelliJ IDEA можно использовать вывод типов на основе компилятора для вызовов inline-методов в Scala 3. Это делает поддержку библиотек, использующих макросы, еще лучше, открывая все функции, связанные с типами (например, автодополнение, навигацию, подсказки типов), для кода с макросами. Пока что это экспериментальная функция.
IntelliJ IDEA 2024.3 также полностью поддерживает именованные кортежи — новую экспериментальную функцию Scala 3.5, которая станет стандартной в Scala 3.6. Как следует из названия, именованные кортежи позволяют задавать имена компонентам кортежа, чтобы к ним можно было обращаться по понятным именам.
Кроме того, IntelliJ IDEA стала лучше распознавать непрозрачные типы. Раньше она понимала ключевое слово opaque
, но обрабатывала такие типы как обычные (т. е. прозрачные) псевдонимы. Теперь же непрозрачные типы распознаются как абстрактные, и их внутренняя реализация не раскрывается.
IntelliJ IDEA теперь автоматически распознает проекты Scala CLI, если в открываемой папке есть конфигурационный файл project.scala
. Вы также можете создать новый проект Scala CLI на основе BSP в мастере New Project и добавлять в него новые Scala-файлы, как и в проекты на основе sbt.
Модель проекта в IntelliJ IDEA теперь точнее отображает sbt-проекты, разделяя исходный код для продакшн- и тестовых частей на отдельные модули. Это упрощает работу с зависимостями и позволяет задавать разные параметры компиляции для каждого типа ресурсов. Функция пока доступна в бета-версии.
Мы сократили количество случаев, когда компиляция запускалась несколько раз подряд. Например, если рефакторинг затрагивает несколько файлов и вызывает много запросов на компиляцию, IntelliJ IDEA теперь анализирует их, объединяет и запускает один более крупный запрос, охватывающий больше файлов. Это снижает нагрузку на процессор и ускоряет подсветку.
Мы также исправили редкие случаи, когда IDE показывала дублирующиеся ошибки — одновременно от парсера Scala и от компилятора.
Мы продолжаем работать над тем, чтобы еще больше функций были доступны во время сборки и индексации проекта. Так, в версии 2024.3 работает проверка орфографии и грамматики. Это позволяет находить, например, ошибки в Markdown-документах и тегах документации, не дожидаясь завершения индексации.
Теперь в виджете Run можно запустить несколько конфигураций одновременно, удерживая Ctrl и нажимая на значок отладки во всплывающем меню. Кроме того, виджет отображает элементы управления для всех активных конфигураций и дает четкое представление об их статусе.
Теперь в редакторе по умолчанию можно держать открытыми до 30 вкладок, прежде чем IDE начнет закрывать наименее используемые. Эту настройку можно изменить в разделе Settings | Editor | General | Editor Tabs.
Мы поменяли расположение действия Rename в контекстном меню при его вызове в редакторе и в окне Project. Теперь оно находится в самом верху, и тем, кто часто пользуется мышкой, будет удобнее переименовывать файлы, переменные и другие элементы.
Теперь IntelliJ IDEA по умолчанию подсвечивает все вхождения выделенного текста в файле. Так сразу хорошо видно, где в коде встречается выбранный текст. Изменить настройку можно в разделе Settings | Editor | General | Appearance.
Теперь файлы сообщений и интернационализации легче заметить благодаря новым иконкам. Это поможет вам быстрее находить в проекте файлы, связанные с локализацией, и проще отличать их от конфигурационных.
Теперь во всплывающем окне для добавления файлов в корневые каталоги исходного кода Java показываются только самые подходящие варианты. Если вам больше нравится прежний расширенный список, можете вернуть его в разделе Settings | Advanced Settings | Java.
Для файлов JSON, XML и YAML добавлена динамическая панель инструментов, которая упрощает доступ к контекстным действиям и функциям на основе ИИ. Выделите код, и панель с доступными действиями появится автоматически.
В новом терминале улучшена обработка команд, а интерфейс стал более удобным и интуитивным. Терминал стал быстрее и лучше реагирует на запросы. Переключение между сессиями стало плавным, и состояние сохраняется на всех вкладках, чтобы работа не прерывалась. Автодополнение быстрее подбирает команды, флаги и пути, экономя ваше время. Также мы добавили новые возможности кастомизации: стили подсказок, имена сессий и переменные окружения.
AI Assistant теперь помогает создавать понятные и лаконичные заголовки и описания для pull- и merge-реквестов прямо в IDE, делая этот процесс быстрее и удобнее.
Теперь у функции Find in Files есть новый режим — Project Files Excluding Git-Ignored. Из поиска исключаются файлы, указанные в .gitignore
, помогая вам сосредоточиться только на нужном коде.
Вы можете управлять фоновыми проверками в процессе коммита с помощью новой опции Run advanced checks after a commit is done в разделе Settings | Version Control | Commit. Она позволяет запускать тесты и инспекции после коммита. Если вы хотите, чтобы проверки завершались до коммита, просто отключите эту опцию.
Теперь на начальном экране IDE отображается название текущей ветки, что помогает лучше ориентироваться при работе с разными версиями проекта и упрощает переключение между рабочими директориями.
Пользоваться HotSwap стало проще и интуитивнее. Эта функция позволяет обновлять измененные классы во время отладки без перезапуска приложения. Теперь, когда вы редактируете код во время активного сеанса отладки, IntelliJ IDEA автоматически распознает изменения и предложит перезагрузить их с помощью удобной кнопки в редакторе. Это упрощает работу, позволяя обновлять код в реальном времени. Обратите внимание, что у HotSwap есть ограничения, особенно при структурных изменениях. Подробнее о них можно узнать здесь.
Теперь можно ставить точки останова на исключения прямо в редакторе. Просто нажмите ⌥↩ на macOS или Alt+Enter на Windows/Linux в месте выброса или перехвата исключения и выберите Enable exception breakpoint. Больше не нужно открывать диалог Breakpoints или просматривать трассировку стека в консоли.
В IntelliJ IDEA 2024.3 больше не нужно добавлять логи и таймеры в код, чтобы измерить время выполнения нескольких строк. Просто вызовите действие Run to Cursor, и вы увидите время выполнения каждой строки прямо в редакторе. Для более подробного анализа можно перейти к вызванным методам, где также будет отображаться информация о времени выполнения.
IntelliJ IDEA 2024.3 упрощает отладку асинхронного кода, когда задачи планируются в одном потоке, а выполняются в другом, и каждый поток имеет свой собственный стек вызовов. Теперь IDE выводит в консоль объединенный стек вызовов, а не только стек рабочего потока — так проще следить за потоком выполнения. Эта функция включена по умолчанию для тестов.
В профилировщик добавлен график использования памяти в куче, который отображается на вкладке Timeline над дорожками потоков. Такая визуализация помогает связать распределение памяти с активностью потоков, чтобы выявлять потенциальные утечки памяти и узкие места в производительности.
В IntelliJ IDEA 2024.3 компиляция модулей по умолчанию выполняется параллельно. Раньше модули компилировались по одному, и в больших проектах на это уходило много времени. Теперь компиляция Maven-проектов проходит быстрее благодаря оптимизации использования процессора и памяти.
IntelliJ IDEA теперь автоматически обнаруживает проблемы с SSL-сертификатами при синхронизации и сборке Maven. Если проблема связана с ненадежным сертификатом, IDE предложит довериться этому сертификату — и вам не нужно выполнять никаких дополнительных действий. Это обновление избавляет от необходимости искать ошибки в логах и управлять сертификатами вручную в хранилище доверенных сертификатов JDK.
IntelliJ IDEA теперь полностью поддерживает разделенные локальные репозитории Maven — функцию, представленную в Maven 3.9. Это позволяет организовать локальные репозитории по вашему усмотрению: например, группировать их по удаленным репозиториям, хранить артефакты в отдельных папках или сортировать их по веткам с помощью префиксов. Раньше использование раздельных репозиториев могло приводить к сбоям синхронизации в IntelliJ IDEA и проблемам с зависимостями и сборками. Теперь эта функция работает стабильно, обеспечивая правильную синхронизацию и эффективное управление репозиториями.
IntelliJ IDEA 2024.3 может автоматически создавать производные методы запросов для репозиториев Spring Data. Вам больше не нужно вручную обновлять исходный код репозитория. Просто начните вводить имя метода, и IntelliJ IDEA предложит подходящие варианты, сгенерирует правильную сигнатуру и обновит репозиторий за вас.
В IntelliJ IDEA 2024.3 появилась возможность доступа к переменным окружения прямо в HTTP-клиенте с использованием синтаксиса $env.ENV_VAR
. Это позволяет более гибко управлять переменными и использовать их в запросах и скриптах. Кроме того, теперь можно импортировать запросы из одного .http
-файла в другой и выполнять их — отдельно по имени или все сразу.
Ktor 3.0 — это обновленная версия фреймворка для создания серверных приложений на Kotlin. Эта версия использует Kotlin 2.0 и улучшает производительность операций ввода-вывода за счет перехода на библиотеку kotlinx-io. Подробнее
Мы значительно упростили отладку нативных образов GraalVM в Docker-контейнерах, и теперь можно собирать и отлаживать нативные Java-приложения на любой платформе. Просто укажите в конфигурации запуска один контейнер для сборки приложения, а другой — для его запуска. Когда приложение запущено, вы можете отлаживать его как на уровне Java-кода, так и на уровне ассемблера. Для вашего удобства мы предоставляем готовые Docker-образы со всем необходимым ПО и библиотеками.
В IntelliJ IDEA добавлена поддержка OpenTofu. В этом обновлении реализовано автодополнение для методов шифрования и поставщиков ключей, а также проверка неизвестных ссылок.
Действия для запуска Terraform теперь легко найти через Search Everywhere, и IDE автоматически отмечает неиспользуемые переменные и локальные значения, помогая поддерживать чистоту кода. Команды Init
, Validate
, Plan
, Apply
и Destroy
были улучшены, а форма конфигурации запуска стала более удобной. Обновленные подсказки и предупреждения о неиспользуемых ресурсах упрощают навигацию и помогают быстро находить неактивный код.
Сборки в Dev Containers теперь работают более стабильно на удаленных Docker-движках, предотвращая ошибки, когда локальные директории недоступны удаленно. Корме того, сборка образов и соединения стали более надежными в WSL.
Файл devcontainer.json
обрабатывает features
более стабильно. Новая опция updateRemoteUID
помогает избежать проблем с доступом, корректно устанавливая идентификатор пользователя. Кроме того, теперь можно настраивать параметры IDE в Dev Containers через файл devcontainer.json
или с помощью кнопки Add currently modified settings from IDE (для всех доступных вариантов есть автодополнение).
IntelliJ IDEA 2024.3 предоставляет расширенную поддержку Docker Compose. Теперь файлы .env
имеют приоритет в автодополнении для env_file
, что ускоряет настройку окружения. С новыми параметрами сборки — cache_to
, no_cache
, tags
и platforms
— удобнее контролировать кэширование и выбор платформ. Улучшенная обработка depends_on.required
и depends_on.restart
позволяет эффективнее управлять порядком запуска и остановки зависимых контейнеров.
С помощью новых ключей, таких как deploy.placement.preferences
, deploy.resources.pids
и deploy.resources.reservations.devices
, можно гибко настраивать размещение сервисов и ограничения ресурсов. Поддерживаются многоконтекстные и привилегированные сборки через параметры build.additional_contexts
и build.privileged
.
Дополнительные опции включают конфигурации cgroup
, пользовательские настройки extra_hosts
и параметр healthcheck.start_interval
. Улучшенные настройки портов и secrets.environment
управляют управление секретами через переменные окружения.
Мы продолжаем улучшать стабильность проектов, размещенных в WSL и открываемых из Windows. В частности, мы добавили поддержку символических ссылок и повысили производительность за счет перехода на сокеты Hyper-V для взаимодействия с WSL. Мы продолжаем совершенствовать платформу, чтобы повысить производительность при работе с удаленными окружениями, включая WSL.
Теперь в IDE поддерживаются сетевые политики, которые регулируют трафик между подами в кластере. С их помощью можно задавать, какие поды могут отправлять или получать трафик от других подов, сервисов или внешних источников. Сетевые политики помогают контролировать трафик, обеспечивать изоляцию подов, повышать безопасность и регулировать внешний доступ.
Теперь IntelliJ IDEA по умолчанию исключает папку node_modules
из поиска по файлам в директориях проекта, убирая лишние файлы из выдачи. Если вы хотите вернуть прежнее поведение, включите опцию Search in library files when “Directory” is selected in Find in Files в разделе Settings | Advanced Settings.
Мы улучшили подсказки для компонентов Vue, Svelte и Astro в редакторе. Действие Show component usages теперь находит использования как в импортированных файлах, так и в шаблонах разметки. Мы также добавили фильтр Show Component Usages, который позволяет исключать упоминания компонента при поиске обычных ссылок на файлы. Кроме того, в рефакторинг Rename добавлена опция, которая позволяет автоматически обновлять все упоминания компонента при переименовании его файла.
В проектах на Angular 19 теперь по умолчанию используется автономный режим для компонентов, директив и пайпов. Добавлены быстрые действия для преобразования автономных компонентов в обычные и наоборот. Неиспользуемые автономные импорты можно автоматически удалять при форматировании кода или с помощью новой инспекции. Кроме того, улучшена поддержка синтаксиса @let
.
Мы упростили работу с AI Assistant в редакторе. Теперь, когда вы просите AI Assistant отредактировать фрагмент кода, в редакторе отображается diff, где виден исходный и сгенерированный код. Предложения AI Assistant выделены другим цветом, а на полях рядом с ними есть кнопка отмены. Кроме того, вы можете самостоятельно отредактировать сгенерированный код. Ваши изменения будут выделены точно так же. Например, можно попросить AI Assistant получить больше данных с помощью запроса, а затем добавить к полученному результату условие ORDER BY
.
В области сообщения об ошибке появилась пара новых действий для обработки ошибок, возникших при выполнении SQL-запросов, с помощью AI Assistant. Explain with AI открывает чат с ИИ, автоматически отправляет запрос и показывает объяснение ошибки, а Fix with AI генерирует исправление в редакторе.
JOIN
В некоторых случаях выполнение запроса с чрезмерным количеством операторов JOIN
снижает производительность. Редактор теперь может находить и выделять такие запросы. Чтобы включить эту инспекцию, перейдите в настройки IDE: откройте Editor | Inspections, разверните раздел SQL и выберите Excessive JOIN count.
Мы перенесли разделение на страницы с панели инструментов в нижнюю часть редактора данных — так заметнее и удобнее.
Новая версия IntelliJ IDEA поддерживает частичную интроспекцию. Раньше всегда выполнялась полная интроспекция схем в MySQL или MariaDB, а обновить метаданные отдельного объекта было нельзя. Каждый раз при выполнении DDL-запроса в консоли, при котором мог измениться объект в схеме базы данных, IDE начинала полную интроспекцию всей схемы. Это требовало много времени и часто мешало нормальной работе.
Теперь IntelliJ IDEA анализирует DDL-запрос, определяет, какие объекты могли быть затронуты, и обновляет только их. Если в проводнике баз данных выбрать один объект и вызвать действие Refresh, будет обновлен только этот объект, а не вся схема, как раньше.
В версии 2024.3 IntelliJ IDEA больше не поддерживает глобальное меню на Linux.