Недавно состоялись сразу два крупных обновления. И IntelliJ IDEA и Amplicode зарелизились с новыми версиями 2024.3. Про Amplicode я уже рассказывал в другой статье, в этой расскажу про IntelliJ IDEA Community Edition и всего пару фич из Ultimate-версии.
Статья также доступна в формате видео на YouTube, VK Видео и RUTUBE, так что можно и смотреть, и читать — как вам удобнее!
Улучшенный HotSwap
Все мы знаем, что отладка отнимает значительно количество времени во время разработки. И здорово, что с последней версии IntelliJ IDEA 2024.3 мы можем экономить немного времени благодаря обновленной функциональности HotSwap. Эта технология позволяет перезагружать измененные классы во время отладки без необходимости перезапуска приложения.
По заверениям разработчиков, HotSwap стал более удобным и интуитивно понятным: теперь при внесении изменений в код во время активной сессии отладки IntelliJ IDEA автоматически определяет их и предлагает перезагрузить через специальную кнопку прямо в редакторе.
Однако у механизма HotSwap есть ограничения, обусловленные особенностями работы виртуальной машины Java. Например, изменения будет возможно хот-свапнуть только если изменено тело методов, а не их сигнатуры, а добавление или удаление элементов класса не поддерживается. Кроме того, если измененный метод уже находится в стеке вызовов, обновления вступят в силу только после выхода программы из этого метода.
Логическая структура кода в панели Structure
Хоть эта фича и появилась в IntelliJ IDEA Ultimate, не рассказать про неё я просто не могу :)
Теперь в окне Structure отображается логическая структура кода вместе с привычной физической. Благодаря чему у пользователей Ultimate появляется возможность видеть не только классы, методы и поля, но и связи между компонентами проекта.
Почему я включил эту фичу в сегодняшний обзор? А потому что панель Amplicode Explorer и наша бин навигация решает ровно эту задачу уже больше года! Great minds think alike :)
У нас, точно также, как и в только появившейся панели, можно проанализовать JPA сущности и эндпоинты. Кроме того, можно посмотреть какие технологии подключены к проекту и как они настроены.
Единственное отличие, посмотреть взаимосвязь бинов именно из нашей панели не получится, у нас для этого есть отдельный Gutter Icon Bean Navigation.
Кстати, раз уж заговорили про панель Structure, в прошлом релизе мы улучшали эту панель для работы с Docker Compose файлами. Можете сравнить, как эта панель выглядит с и без Amplicode в IntelliJ IDEA.
Поддержка мультидолларовой интерполяции в Kotlin
Работа со строками, содержащими символ $
, раньше могла быть неудобной: приходилось использовать обходные решения вроде ${'$'}
. В новой версии IntelliJ IDEA 2024.3 с включенным режимом K2 появилась экспериментальная возможность мульти-долларовой интерполяции, которая упрощает работу со строками, содержащими символы $
, и устраняет необходимость в обходных путях вроде ${'$'}
. Это особенно полезно, например, при описании JSON-схем в вашем коде.
Улучшения, связанные с форматтером Java кода
Для тех, кто часто работает с JPA-сущностями, в новой версии IntelliJ IDEA 2024.3 добавлена полезная опция: теперь вы можете сохранять пустые строки между аннотациями и полями.
Ранее форматтер удалял такие строки, считая их избыточными, что не всегда соответствовало стилю, принятому в проекте. С новой настройкой вы сами решаете, как должен выглядеть ваш код.
Функция доступна в настройках: Editor → Code Style → Java → Blank Lines
.
Виджет Run: одновременный запуск нескольких конфигураций
Простая, но очень полезная фича – теперь в виджете Run можно запустить несколько конфигураций одновременно, удерживая Ctrl (Cmd для MacOS) и нажимая на значок запуска во всплывающем меню.
Создание derived-методов для Spring Data репозиториев
Ещё одна фича, которая вошла в состав IntelliJ IDEA Ultimate – создание методов для Spring Data репозиториев в месте обращения к ним. Вместе с этой фичей вам больше не нужно вручную обновлять код репозитория. Просто начните вводить имя метода, и либо печатайте назнавание метода вручную, отталкиваясь от модели данных. А как закончите набирать название метода – просто вызовите контекстное меню и создайте метод, указав для него возвращаемый тип.
Аналогичная фича есть и в Amplicode. Благодаря ей вам также не придется переходить в интерфейс репозитория, чтобы создать новый derived или @Query метод. Просто начните писать название ещё несуществующего метода, используя в процессе подсказки от Amplicode, основанные на модели данных приложения, а после набора кода – обратитесь к контекстным действиям, чтобы создать новый метод прямо из текущего редактора:
Подробнее ознакомиться с фичей можно, посмотрев видео.
Обновленный UI для терминала (Beta)
Ребята из JetBrains переработали дизайн терминала, сделав его более компактным, чтобы использовать экранное пространство максимально эффективно.
Уменьшение отступов позволяет увидеть больше информации на экране, сохраняя при этом четкость и читаемость. Это особенно удобно для работы с длинными командами и большими списками файлов.
Кроме того, разработчики утверждают, что терминал стал быстрее и лучше реагирует на запросы. Переключение между сессиями стало плавным, а состояние сохраняется на всех вкладках.
А вы заметили улучшения?
Поддержка фич Kotlin 2.1: non-local операторы break и continue внутри лямбда-выражений
С выпуском IntelliJ IDEA 2024.3 вы сможете попробовать новую экспериментальную возможность Kotlin 2.1: использование non-local операторов break
и continue
внутри лямбда-выражений, передаваемых в inline
-функции.
Это нововведение работает аналогично оператору return
, позволяя управлять циклом, в который вложена лямбда, без необходимости использования дополнительных конструкций. Важно отметить, что это применимо только к лямбдам, переданным параметрам без модификаторов noinline
или crossinline
.
Обновления в меню поиска по файлам
В новой версии IntelliJ IDEA поиск по файлам стал еще удобнее! В инструменте Find in Files появилась новая область поиска — Project Files Excluding Git-Ignored.
Опция позволяет исключить из результатов поиска все файлы, указанные в .gitignore
, что позволяет сосредоточиться только на актуальном коде проекта. Фича идеально подходит для больших проектов, где игнорируемые файлы могут загромождать поиск, усложняя непосредственно с самим проектом.
Подписывайтесь на наши Telegram и YouTube, чтобы не пропустить новые материалы про Amplicode, Spring и связанные с ним технологии!
А если вы хотите попробовать Amplicode в действии – то можете установить его абсолютно бесплатно уже сейчас, как в IntelliJ IDEA/GigaIDE, так и в VS Code.
Комментарии (7)
maxzh83
03.12.2024 17:20Попробовал Amplicode и словил такую штуку: после установки все подсказки начинают заметно сильнее тормозить. Т.е. ты начинаешь набирать название метода и пока подсказка "думает", ты уже почти все набрал сам или, если не помнишь, надо пару секунд ждать, пока она соизволит открыться. Собственно, это была основная причина, по которой удалил, Amplicode. Скорость и привычки важнее фичей, которые хорошо что есть, но без которых можно и легко обойтись.
befayer Автор
03.12.2024 17:20Добрый день! Спасибо, что поделились фидбеком. Такое поведение не является нормой для нашего плагина, и мы активно тестируем производительность, чтобы избежать подобных ситуаций. Возможно, есть какие-то нюансы, связанные с версией IDE или спецификой проекта.
Уточните, пожалуйста, вашу версию IDE, тип проекта — это поможет нам быстрее разобраться и найти решение. Мы всегда открыты для обратной связи и готовы помочь! Можно перейти прямо в личку, либо списаться в нашем чате в телеграм, где мы активно общаемся с пользователями =)
maxzh83
03.12.2024 17:20Ух, поддержка прям на все деньги, которая передозом позитива доведет до негатива. Шучу. Пробовал на IntelliJ IDEA 2024.1.5 (Community Edition), проект на Spring Boot 2.x, средних размеров, используется Spring Data. Буду рад, если это поможет. В остальном, желаю проекту удачи.
MrAlone
Самое главное - OpenTofu подвезли. Хотя Terraform плагин всё же малость протух - 5.54.1
А, ну и в AI ассистенте теперь можно выбрать модель, например openai-gtp-4o, google-chat-gemini-pro-1.5, несколько их там.