Недавно состоялись сразу два крупных обновления. И IntelliJ IDEA и Amplicode зарелизились с новыми версиями 2024.2. Про Amplicode я уже рассказывал в другой статьей, в этой расскажу про IntelliJ IDEA Community Edition.
Улучшения, которые вошли в состав Ultimate версии IntelliJ IDEA я рассматривать не буду ввиду невозможности установки и активации этой IDE.
Статья также доступна в формате видео на YouTube и VK Видео, так что можно и смотреть, и читать — как вам удобнее!
Быстрый старт
В версии IntelliJ IDEA 2024.2 ускорился запуск IDE. Теперь даже пока не завершена индексация, у меня есть доступ к основным функциям IDE, включая подсветку синтаксиса, автодополнение, контекстные действия, запуск тестов, gutter-иконки и так далее.
Субъективно могу отметить, что действительно, даже на маленьких проектах, появилось ощущение, что проекты открываются быстрее. По всей видимости как раз из за того, что визуально практически всё, к чему я привык, сразу так и выглядит.
Режим К2
Котлинисты скорее всего вкурсе, что не так давно был выпущен компилятор K2 для Kotlin, который по заверениям разработчиков:
привнёс улучшение производительности до 94%;
ускорил этап инициализации до 488%;
ускорил этап анализа кода до 376%.
По всей видимости, ребята из JetBrains, увидив такие потрясающие показатели, решили найти им применение и в своей среде разработки.
Теперь вы можете включить режим K2 и в Kotlin проектах, IDE должна намного быстрее осуществлять подсветку кода, показывать код комплишены и так далее.
Вот список фич, которые на данный момент поддерживает режим К2:
Скрипты build.gradle.kts
Проекты на Kotlin Multiplatform (KMP)
Большинство рефакторингов
Подсветку кода
Автодополнения
Отладку
Многое другое
Скоро будет поддерживать:
Kotlin/Wasm
Scratch файлы
Менее часто используемые рефакторинги
Отмечу, что режим К2 совместим с версиями Kotlin 1.9 и выше, а также версиями IntelliJ IDEA. 2024.1 и выше. А уже в следующей мажорной версии этот режим станет режимом по умолчанию для всех Kotlin проектов.
![](https://habrastorage.org/getpro/habr/upload_files/299/44d/7d7/29944d7d7cefb6e0a770d6da93d49294.png)
Новый интерфейс включен по умолчанию
Новый UI теперь включен по умолчанию для всех пользователей. По словам разработчиков, новый интерфейс отличается более крупными и удобными элементами управления, продуманной цветовой схемой, легкими для восприятия иконками, повышенной контрастностью и интуитивно понятными акцентами.
![](https://habrastorage.org/getpro/habr/upload_files/654/eee/d5d/654eeed5dccca197b3c947accfe24933.png)
Для тех, кто не совсем согласен с этими аргументами – ребята представили плагин, установив который можно вернуться к старому UI.
А какой UI вам нравится больше? Старый или новый?
Превью результатов поиска в Search Everywhere
Думаю, что многие из вас знают, что самый простой способ найти файл или действие которое вы знаете как называется – это два раза нажать шифт, после чего откроется окно Search Everywhere. В этом окне можно написать название чего угодно, что вам нужно в данный момент.
Так вот, начиная с этой версии IntelliJ IDEA, эта прекрасная фича стала ещё круче, благодаря появлению возможности предпросмотра кода.
![](https://habrastorage.org/getpro/habr/upload_files/a54/9b1/538/a549b1538b820137c55fcd657cc8aa5c.gif)
Навигироваться по проекту стало ещё проще!
Улучшенная работа с логами
В IntelliJ IDEA 2024.2 улучшена работа с логами для Java и Kotlin.
Во-первых, появилась подсветка строковых литералов, за счёт чего стало легче различать места, в которые будут добавлены значения. А также тут есть навигация к значениями, которые будут вставлены на указанное место. В общем, ошибиться стало сильно сложнее.
![](https://habrastorage.org/getpro/habr/upload_files/efa/57b/d3c/efa57bd3c3316e2667a38d9fe9425dbb.gif)
Также появилась инспекция, которая проверяет передаваемое количество элементов. Что самое интересное, инспекции учитывают особенности используемого логгера. Например, предупреждение не будет срабатывать, если дополнительный аргумент относится к типу Exception.
![](https://habrastorage.org/getpro/habr/upload_files/cbe/df2/ffc/cbedf2ffc2deb7e56c350aae6195cedb.png)
Наконец, избавиться от sout’ов стало максимально просто благодаря новому Quick-fix'у.
![](https://habrastorage.org/getpro/habr/upload_files/4b9/26c/a1a/4b926ca1ad85fd77f30c5095e64e7a50.gif)
Улучшенный дебаггер для Kotlin
Ещё одна прекрасная новость для Котлинистов! Наконец-то в режиме дебага step-over для inline функций не будет проскакивать, а будет заходить в них.
![](https://habrastorage.org/getpro/habr/upload_files/400/03e/a6f/40003ea6f4183f914388e2d60faa855d.gif)
Больше не нужно помнить что для forEach
, let
и filter
нужно использовать step into, а не step over.
Визуализация строковых переменных для JSON, XML и других форматов
В IntelliJ IDEA 2024.2 дебаггер стал лучше не только для котлинистов, но и для всех, кому приходится часто сталкиваться с JSON, XML и HTML значениями во время дебага.
![](https://habrastorage.org/getpro/habr/upload_files/c77/c63/ab2/c77c63ab2e5c05b350c1c7f08b26f095.png)
Теперь для этих типов файлов можно будет видеть контент в привычном, отформатированном виде, а не в виде бесконечно длинной строки.
Улучшенная работа с Gradle
Первое, на что я обратил внимание – теперь рядом с названием gradle тасок появилась gutter-иконка для их запуска. Как по мне очень удобно, меньше нужно будет ходить в панель Gradle.
![](https://habrastorage.org/getpro/habr/upload_files/7d6/f03/525/7d6f03525f5f5f2c97dbd1f44ad5057b.png)
Второе, что стоит упомянуть – это возможность навигации к плагинам. Придётся по душе тем, у кого большой проект в котором настраиваемая логика и различные задачи для сценариев сборки вынесены в отдельные плагины.
![](https://habrastorage.org/getpro/habr/upload_files/0d3/d3a/b8c/0d3d3ab8ce68aa042141c85c15778f18.gif)
Наконец, появилась навигация из файла libs.versions.toml
, тоже может быть крайне полезно для тех, у кого многомодульный проект, а все версии зависимостей объявлены в файле libs.versions.toml
.
![](https://habrastorage.org/getpro/habr/upload_files/dc8/24b/c0e/dc824bc0ee1b05ff784e6af9ce33e874.gif)
Улучшения, связанные с VCS
Конфликты во время мёрджа стало разрешать проще. А именно, за конфликты в выражениях import можно больше не переживать, разрешая их благодаря новому действию:
![](https://habrastorage.org/getpro/habr/upload_files/6db/0d6/e62/6db0d6e6224187584b21b049e71d5ed9.png)
Кстати, также можно включить автоматическое разрешение конфликтов в импортах в настройках и вовсе забыть про них :)
![](https://habrastorage.org/getpro/habr/upload_files/469/a77/df7/469a77df7f072fe1d287142d6d57d94a.png)
Наконец то в виджете version control можно просматривать не только ветки, но и теги.
![](https://habrastorage.org/getpro/habr/upload_files/d22/8e6/f4b/d228e6f4b6ad1c1e476215cd6129e200.gif)
Все настройки связанные с панелью Log теперь удобно собраны на отдельной странице.
![](https://habrastorage.org/getpro/habr/upload_files/9b5/a90/ffb/9b5a90ffbf0fc630e57e6a2bc4533a32.gif)
Сама панель Log стала интуитивно понятнее благодаря улучшенной цветовой кодировке и расположению веток в дереве коммитов.
![](https://habrastorage.org/getpro/habr/upload_files/efa/d2b/b66/efad2bb668b2865541737cf794dc1656.gif)
А просматривая историю запутаться теперь будет сложнее благодаря опциям first parent и no merges, которые позволят оставить только действительно нужные коммиты.
![](https://habrastorage.org/getpro/habr/upload_files/e4a/451/1e6/e4a4511e6a62ca684eaf7f3c25eda174.png)
Инкрементальная синхронизация Maven-проектов
Одна из фич Gradle, за которую его можно любить – это инкрементальная сборка, которой Maven похвастаться не может.
Gradle старается избегать лишней работы, отслеживая входные и выходные данные тасок и обрабатывает только измененные файлы, когда это возможно.
![](https://habrastorage.org/getpro/habr/upload_files/988/0fe/4e6/9880fe4e67d02206cd4c8bfcfb446894.gif)
IntelliJ IDEA решила дать фору Maven, и реализовала инкрементальную синхронизацию. Теперь после первоначальной полной синхронизации IDE обновляет только те части проекта, в которых обнаруживает изменения, а не весь проект.
![](https://habrastorage.org/getpro/habr/upload_files/529/a98/629/529a986294be6592eb1473a47f4463ce.png)
Подписывайтесь на наши Telegram и YouTube, чтобы не пропустить новые материалы про Amplicode, Spring и связанные с ним технологии!
А если вы хотите попробовать Amplicode в действии – то можете установить его абсолютно бесплатно уже сейчас, как в IntelliJ IDEA/GigaIDE, так и в VS Code.
Комментарии (21)
gudvinr
30.08.2024 09:11+16Что нового в IntelliJ IDEA 2024.2
honest_niceman Автор
30.08.2024 09:11Там хитрый лендинг) Это только для IntelliJ IDEA Ultimate так, но есть пролистать вниз на этой странице: https://www.jetbrains.com/idea/download, то там можно будет выбрать IntelliJ IDEA Community Edition и она скачается без проблем.
Альтернативно можно вот эту страницу использовать: https://www.jetbrains.com/idea/download/other.html, тут сразу понятно где Ultimate, а где Community, на мой взгляд.N1kk0n
30.08.2024 09:11Альтернативная страница тоже не даёт доступа к загрузке Ultimate-версии
honest_niceman Автор
30.08.2024 09:11К Ultimate да, Ultimate недоступна с любых страниц, в том числе по этой причине в статье рассказывал только про фичи Community Edition
kimisa
30.08.2024 09:11С чем борюсь в Goland. Кеш постоянно разрастается и проблемно смотреть по истории. Да и тормозить начинает. Поэтому раз в 2 недели скидываю кеш. А проглодство продукта та еще проблема - 5 - 7 гигов памяти ест без проблем.
gudvinr
30.08.2024 09:11+2Оперативка нужна чтобы её использовать. Вам же не на зиму её солить. Если IDE грузит в память индексы и это действительно влияет на отзывчивость, то ничего плохого нет если она будет использовать хоть всю память
Если на отзывчивость не влияет - это конечно другой вопрос, но у вас и постановка проблемы довольно гибкую трактовку допускает
dmitriinikolaev
30.08.2024 09:11Всё зависит от конкретного случая и того, как именно IDE управляет памятью и её нагрузкой
ant1free2e
30.08.2024 09:11+1VS Code на большом проекте может выжрать и больше, когда я специально сравнивал, было на пару гигов разницы
magways
30.08.2024 09:11А ещё поломали запуск cucumber тестов, когда идея настроена на запуск тестов с помощью грэдл. (Не передаются путь к feature фойлу и glue)
kpbsod
30.08.2024 09:11Использую новый UI со светлой темой. Новый UI намного приятнее старого, правда пришлось потратить некоторое время, чтобы привыкнуть. На старый точно не вернусь!
Imbashket
30.08.2024 09:11С каждым новым патчем ломается много уже существующих фич. Хотелось бы видеть лучшее тестирование, а не гонку за новыми фичами. Из последнего: перенести классы из пакета в пакет почти всегда стреляет ошибкой, http файлы с запросами подвешивают IDE секунд на 30. И это на достаточно топовом проце и 64гб оперативки.
Maccimo
30.08.2024 09:11Первое, что я заметил после обновления до 2024.2 и изгнания косплея VSCode с экрана это то, что в запускалке юнит-тестов сломан просмотр Diff для упавших тестов, а в самом окне Diff с полей пропали иконки применить/проигнорировать изменения. На этом знакомство закончилось и я вернулся на 2024.1
Без исправно работающего Diff продукт к использованию непригоден.
Статья также доступна в формате видео на YouTube и VK Видео
Вот как это выглядит в свежем Хроме, на свежем Андроиде:
Бросьте каку и не трогайте больше никогда.
В версии IntelliJ IDEA 2024.2 ускорился запуск IDE.
Когда-то в release notes уже встречалось упоминание «ускорения». В тот раз я с удивлением заметил в новой версии индикатор загрузки на панелях инструментов (!). Все 100500 лет перед этим как-то всё быстро грузилось и без этих «ускорений».
легкими для восприятия иконками
В прошлый раз нам тоже затирали про «более лучшие» иконки и что-то там про distraction, visual noise и прочие СДВГ. На мнение пользователей положили.
QuarkDoe
30.08.2024 09:11Как же меня вымораживает их новый UI. А теперь ещё и Classic UI выпихали в отдельный плагин. Тфу, срамота.
Adel-S
А можно не надо?
VirtualVoid
По словам реальных разработчиков, которые в частности можно почитать в отзывах на Classic UI плагин, не так уж всё и гладко-удобно.
Скорее, не удобно совсем, но это моё частное мнение.
Лучше бы просто оставили на месте ту самую New UI опцию.
kivan_mih
Скорее не надо из классика делать второй сорт и выпихивать в плагин. Хотят привлекать зумеров с vscode, пожалуйста, но примерять зумерское платье на старичках, плативших последние 15 лет кажется несколько неприлично особенно для компании, традиционно славившейся заботой о своих пользователях.