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

Недавно состоялись сразу два крупных обновления. И IntelliJ IDEA и Amplicode зарелизились с новыми версиями 2024.3. Про Amplicode я уже рассказывал в другой статье, в этой расскажу про IntelliJ IDEA Community Edition. 

Улучшения, которые вошли в состав Ultimate версии IntelliJ IDEA я рассматривать не буду ввиду невозможности установки и активации этой IDE. 

Статья также доступна в формате видео на YouTube, VK Видео и RUTUBE, так что можно и смотреть, и читать — как вам удобнее!  

Улучшенный HotSwap

Все мы знаем, что отладка отнимает значительно количество времени во время разработки. И здорово, что с последней версии IntelliJ IDEA 2024.3 мы можем экономить немного времени благодаря обновленной функциональности HotSwap. Эта технология позволяет перезагружать измененные классы во время отладки без необходимости перезапуска приложения.   

По заверениям разработчиков, HotSwap стал более удобным и интуитивно понятным: теперь при внесении изменений в код во время активной сессии отладки IntelliJ IDEA автоматически определяет их и предлагает перезагрузить через специальную кнопку прямо в редакторе.   

f48bbfdddf3487d42d2bc00d30b0c326.gif

Однако у механизма HotSwap есть ограничения, обусловленные особенностями работы виртуальной машины Java. Например, изменения будет возможно хот-свапнуть только если изменено тело методов, а не их сигнатуры, а добавление или удаление элементов класса не поддерживается. Кроме того, если измененный метод уже находится в стеке вызовов, обновления вступят в силу только после выхода программы из этого метода.  

Логическая структура кода в панели Structure

Хоть эта фича и появилась в IntelliJ IDEA Ultimate, не рассказать про неё я просто не могу :)   

Теперь в окне Structure отображается логическая структура кода вместе с привычной физической. Благодаря чему у пользователей Ultimate появляется возможность видеть не только классы, методы и поля, но и связи между компонентами проекта.   

d7cf0a5cbbe39ee933237b3830c531e9.gif

Почему я включил эту фичу в сегодняшний обзор? А потому что панель Amplicode Explorer и наша бин навигация решает ровно эту задачу уже больше года! Great minds think alike:)   

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

ab849bdfcff0703fde31b6f8ccbae521.png

Единственное отличие, посмотреть взаимосвязь бинов именно из нашей панели не получится, у нас для этого есть отдельный Gutter Icon Bean Navigation.  

3ee633e63593f1601302249f0530db5b.png

Кстати, раз уж заговорили про панель Structure, в прошлом релизе мы улучшали эту панель для работы с Docker Compose файлами. Можете сравнить, как эта панель выглядит с и без Amplicode в IntelliJ IDEA.  

e3825b202ae801affd097c0d136b679c.png102c38ef2f0c19b8ca7ac12f370b2605.png

Поддержка мультидолларовой интерполяции в Kotlin

Работа со строками, содержащими символ $, раньше могла быть неудобной: приходилось использовать обходные решения вроде ${'$'}. В новой версии IntelliJ IDEA 2024.3 с включенным режимом K2 появилась экспериментальная возможность мульти-долларовой интерполяции, которая упрощает работу со строками, содержащими символы $, и устраняет необходимость в обходных путях вроде ${'$'}. Это особенно полезно, например, при описании JSON-схем в вашем коде. 

4e642ec2200f55e2368e54c2d433ecfc.png

Улучшения, связанные с форматтером Java кода

Для тех, кто часто работает с JPA-сущностями, в новой версии IntelliJ IDEA 2024.3 добавлена полезная опция: теперь вы можете сохранять пустые строки между аннотациями и полями. 

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

39400915691e4fd1a0c22cb620730dcc.gif

Функция доступна в настройках: Editor → Code Style → Java → Blank Lines

Виджет Run: одновременный запуск нескольких конфигураций

Простая, но очень полезная фича — теперь в виджете Run можно запустить несколько конфигураций одновременно, удерживая Ctrl (Cmd для MacOS) и нажимая на значок запуска во всплывающем меню. 

203d6f65209339bef2f9490a8ef85dfc.png

Создание derived-методов для Spring Data репозиториев

Ещё одна фича, которая вошла в состав IntelliJ IDEA Ultimate — создание методов для Spring Data репозиториев в месте обращения к ним. Вместе с этой фичей вам больше не нужно вручную обновлять код репозитория. Просто начните вводить имя метода, и либо печатайте назнавание метода вручную, отталкиваясь от модели данных. А как закончите набирать название метода — просто вызовите контекстное меню и создайте метод, указав для него возвращаемый тип. 

d9020feeab417aeca81c9785bbeb5278.gif

Аналогичная фича есть и в Amplicode. Благодаря ей вам также не придется переходить в интерфейс репозитория, чтобы создать новый derived или @Query метод. Просто начните писать название ещё несуществующего метода, используя в процессе подсказки от Amplicode, основанные на модели данных приложения, а после набора кода — обратитесь к контекстным действиям, чтобы создать новый метод прямо из текущего редактора:

456c7aa251f9bd8ea9a5ddc19448c5ec.png

Подробнее ознакомиться с фичей можно, посмотрев видео. 

Обновленный UI для терминала (Beta)

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

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

ab12d5c6c63a798176888dca420dba1e.png

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

А вы заметили улучшения?  

Поддержка фич Kotlin 2.1: non-local операторы break и continue внутри лямбда-выражений

С выпуском IntelliJ IDEA 2024.3 вы сможете попробовать новую экспериментальную возможность Kotlin 2.1: использование non-local операторов break и continue внутри лямбда-выражений, передаваемых в inline-функции.  

78fda8c66c293667591880248fc484eb.png

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

Обновления в меню поиска по файлам

В новой версии IntelliJ IDEA поиск по файлам стал еще удобнее! В инструменте Find in Files появилась новая область поиска — Project Files Excluding Git-Ignored.  

09cda372b09b50dc9a9001ae01f64243.png

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

68ae2ecc7b41d9a16752a5f980fa5a30.png

Подписывайтесь на наши Telegram и YouTube, чтобы не пропустить новые материалы про Amplicode, Spring и связанные с ним технологии!  

А если вы хотите попробовать Amplicode в действии — то можете установить его абсолютно бесплатно уже сейчас, как в IntelliJ IDEA/GigaIDE, так и в VS Code.

© Habrahabr.ru