IntelliJ IDEA 2024.1 несет в себе множество полезных обновлений для оптимизации ваших рабочих процессов. В IntelliJ IDEA Ultimate теперь работает продвинутое автодополнение, продолжающее строку целиком. Поддержка Java 22 позволяет пользоваться новейшими возможностями языка. Модернизированный терминал упрощает работу с командной строкой, а липкие строки в редакторе ускоряют навигацию по кодовым базам. В свежей версии вас ждут десятки других улучшений в разных частях IDE. Читайте далее о самом интересном.
В IntelliJ IDEA Ultimate 2024.1 появилось новое продвинутое автодополнение для Java и Kotlin. Оно работает благодаря передовой модели глубокого обучения, встроенной в IDE. За счет контекстного анализа IntelliJ IDEA теперь продолжает строку целиком, помогая вам писать код эффективнее. Варианты такого автодополнения создаются специализированными языковыми моделями, которые мы обучили для различных языков и фреймворков. Они работают локально, гарантируя безопасность ваших данных без необходимости взаимодействия с внешним сервером. Эта функция входит в стандартную подписку на IntelliJ IDEA Ultimate. Подробнее
IntelliJ IDEA 2024.1 поддерживает возможности JDK 22, выпущенной в марте 2024 года. Сюда входит поддержка окончательной версии безымянных переменных и шаблонов, второй превью-версии шаблонов строк и неявно объявленных классов, а также методов main
, которые принадлежат экземплярам классов. Кроме того, в этом обновлении появилась поддержка новых выражений, предшествующих super(...)
(этот синтаксис находится в статусе превью). Подробнее
В IntelliJ IDEA 2024.1 переработан интерфейс и функционал терминала, так что работать с командной строкой стало проще и удобнее. Знакомый инструмент выглядит по-новому: теперь команды разбиты на отдельные блоки с удобной навигацией между ними. Мы также добавили автодополнение для команд и простой доступ к истории команд. Подробнее
Мы добавили в редактор функцию липких строк, которая упрощает работу с большими файлами и знакомство с новыми кодовыми базами. Эта функция позволяет закрепить в верхней части окна редактора основные структурные элементы, например начала классов или методов, чтобы они были постоянно видны во время прокрутки кода. Благодаря этому вы все время будете видеть контекст, а для быстрой навигации достаточно просто кликнуть по закрепленной строке.
AI Assistant получил несколько важных обновлений: теперь он лучше генерирует тесты и предлагает облачное автодополнение. Также улучшена генерация кода в редакторе, добавлены пользовательские промты для сообщений коммитов и возможность создавать файлы из фрагментов кода. Подробнее
Обратите внимание, что начиная с версии 2024.1 AI Assistant выведен из состава IDE в отдельный плагин. Мы сделали это для того, чтобы у вас было больше свободы в принятии решений об использовании технологий на основе искусственного интеллекта и больше контроля над собственной рабочей средой. Для использования AI Assistant по-прежнему нужна подписка на JetBrains AI.
Мы улучшили подсветку синтаксиса Java и Kotlin в ответах AI Assistant. Теперь код в чате с искусственным интеллектом подсвечивается точно так же, как в редакторе, поэтому его легче воспринимать. Это делает работу с AI Assistant более интуитивной, потому что код в чате выглядит так, как вы привыкли.
Основные функции IDE, такие как подсветка синтаксиса и автодополнение кода, теперь доступны для Java и Kotlin уже во время индексации проекта. Это должно сделать запуск проекта более приятным и эффективным. Кроме того, пока проект еще загружается, можно перемещаться по коду с помощью Go to class и Go to symbol.
Мы улучшили расположение элементов в мастере New Project, чтобы сделать настройку более интуитивной. Список языков теперь находится в левом верхнем углу, что упрощает поиск самых популярных вариантов.
Теперь масштаб интерфейса можно не только увеличить, но и уменьшить до 90%, 80% или 70%.
В IntelliJ IDEA 2024.1 добавлена возможность вставлять языковые фрагменты в шаблоны строк. Это можно сделать двумя способами: с использованием аннотаций, которые автоматически определяют нужный язык, или с помощью действия Inject language or reference (Alt+Enter), вручную выбрав язык из списка. Если вы воспользуетесь вторым способом, IDE предложит вставить аннотацию автоматически. Вставленный фрагмент можно открыть и редактировать в отдельной панели редактора.
Мы внесли несколько изменений, чтобы улучшить логирование. Теперь вы можете легко переходить от сообщений журнала в консоли к коду, который их генерирует. IDE предлагает добавлять логгеры там, где они нужны, и упрощает вставку операторов логирования, даже если экземпляр логгера не доступен в текущей области видимости. Подробнее
Мы добавили новые инспекции и исправления, чтобы ваш код на Java был качественнее и аккуратнее. Теперь IDE автоматически обнаруживает побитовые операции, которые можно заменить вызовами методов Long.hashCode()
или Double.hashCode()
. Кроме того, новое быстрое исправление упрощает переключение между явными и неявными объявлениями классов в зависимости от требований вашей кодовой базы. Еще одна новая инспекция предлагает использовать существующие статические методы для подходящих фрагментов кода, что облегчает повторное использование кода без добавления новых API. И наконец, теперь IDE сообщает о недостижимом коде, который никогда не будет выполнен.
IntelliJ IDEA 2024.1 улучшает работу с многоверсионными библиотеками JAR. Если вы используете класс с несколькими версиями, функция Go to declaration выбирает правильную версию из JAR-файла на основе языкового уровня вашего текущего модуля. Кроме того, Go to class предоставляет дополнительную информацию о версии класса. При использовании функции Step Into во время отладки IDE автоматически переходит к классу, соответствующему вашей версии JDK, а не языковому уровню вашего модуля.
В версии 2024.1 мы обновили диалог Conflicts Detected, сделав его более понятным. Теперь код в диалоге соответствует тому, что вы видите в редакторе. Кроме того, размер окна автоматически сохраняется для будущего использования. Мы также обновили кнопки и их поведение, чтобы упростить процесс рефакторинга, и сделали диалог полностью доступным с клавиатуры, так что вы можете использовать сочетания клавиш и стрелки.
Мы упростили процесс переименования, добавив новую подсказку, которая появляется поверх измененного элемента. Теперь, чтобы обновить все ссылки в коде, достаточно просто кликнуть по этой подсказке и подтвердить изменение.
В новом режиме для разработки на Kotlin используется встроенный компилятор K2 для более точного анализа Kotlin-кода. Он не только обеспечивает совместимость с новыми возможностями Kotlin, но и повышает стабильность анализа кода, улучшая качество и надежность функций IDE, а также общую производительность приложений. Подробнее.
Начиная с версии 2024.1, IDE по умолчанию применяет официальный стиль Kotlin во всех проектах, если не указано иное. Если в проекте используется более старый стиль кода без явных настроек, IDE автоматически переключится на стандартное оформление Kotlin-кода и сообщит вам об этом. Чтобы избежать нежелательных изменений форматирования, рекомендуем ознакомиться с руководством по переносу стилей кода.
Версия 2024.1 точно сохраняет статические импорты, обеспечивая их перенос именно в том виде, в котором они присутствуют в исходном коде. Это особенно ценно при работе с вложенными объектами, перечислениями и статическими импортами Java.
Мы улучшили обработку множества специфических случаев синтаксиса Scala 3. Теперь IDE может распознавать запрещенные комбинации модификаторов, рассчитывать глубину отступов, выполнять копирование без нарушения отступов, а также правильно связывать конечные маркеры с соответствующими структурами кода. Кроме того, мы улучшили поддержку Scala 3 в отладчике, а автодополнение теперь точно обрабатывает некоторые особые случаи, например с использованием ключевых слов using
и given
, а также сигнатур unapply
.
Мы улучшили подсветку классов, трейтов и объявлений методов в подсказках Scaladoc и в быстрой документации. Теперь она более точная: правильно выделяются вложенные обобщенные параметры, отображаются модификаторы доступа к полям, а код внутри блоков Scaladoc с тремя фигурными скобками подсвечивается так же, как обычный Scala-код.
Раньше при использовании компиляторной подсветки код автоматически перекомпилировался, если вы переключались на другой редактор. В версии 2024.1 мы это изменили. Теперь, будет код перекомпилироваться или нет, зависит от того, находится ли редактор в фокусе. Это ускоряет реакцию подсветки на изменения в файлах исходного кода и файлах .class
и предотвращает подчеркивание правильного кода красным.
IDE теперь добавляет файл .gitignore
в новые SBT-проекты. Мы исправили проблему, из-за которой при первом запуске Scala/JVM-приложений с включенной опцией Use sbt for builds возникало исключение, и теперь все транзитивные зависимости модуля при импорте вставляются как прямые зависимости.
Чтобы решить проблему совместимости старых версий Play Framework (2.8 и ниже) с JDK 17, мы добавили предупреждение о несовместимости версий Play и JDK в мастере Play.
Мы добавили новые иконки: одну для языка Scala в мастере создания проектов, а другую для SBT во View | Tool windows. Подсказки в редакторе теперь выглядят лучше: у них закругленные углы и более точное выравнивание. В настройках редактора появилась документация по Scala в разделе Settings | Editor | CodeStyle. В рабочих листах ошибки компиляции снова отображаются правильно при использовании Scala 2.13.12, а импорты больше не помечаются как неиспользуемые до первой компиляции кода. Кроме того, функцию X-Ray теперь можно оставить активной даже после того, как вы отпустите клавишу Ctrl.
IntelliJ IDEA 2024.1 предлагает пользователям GitHub и GitLab новый улучшенный режим код-ревью в редакторе. Он упрощает взаимодействие между авторами кода и ревьюерами. При проверке ветки пул/мердж-реквеста режим ревью активируется автоматически. На полях появляются розовые маркеры, которые указывают на изменения, нуждающиеся в проверке. Кликнув по этим маркерам, вы сможете просмотреть исходный код и понять, что изменилось. Иконки на полях редактора помогают быстро начать новое обсуждение, а также посмотреть и скрыть существующие. Кроме того, с их помощью удобно отвечать и реагировать на комментарии. Подробнее
В IntelliJ IDEA 2024.1 проще выполнять код-ревью благодаря удобному отображению изменений, связанных с ветками. Теперь в GitHub, GitLab и Space можно посмотреть изменения в определенной ветке на отдельной вкладке Log в окне Git. Для этого нажмите на имя ветки в окне Pull Requests и выберите в меню пункт Show in Git Log.
В IntelliJ IDEA 2024.1 можно реагировать на комментарии к пул-реквестам на GitHub и мердж-реквестам на GitLab с помощью эмодзи.
Мы добавили новый столбец на вкладке Log окна Git, чтобы было удобно просматривать результаты проверок коммитов в GitHub, выполненных CI-системой.
После отправки изменений в систему контроля версий IDE в одном уведомлении сообщит вам об успешном пуше и предложит создать пул- или мердж-реквест.
Мы добавили визуальные индикаторы для отслеживания обновлений в процессе ревью. Если какие-то изменения требуют вашего внимания, на иконке окна появляется голубая точка. Непросмотренные пул-реквесты тоже помечаются голубой точкой, так что вы точно не пропустите изменений в ходе ревью.
Чтобы избежать отклонения изменений из-за размера файлов, в IDE добавлена проверка перед коммитом, которая не позволяет коммитить слишком большие файлы и сообщает об ограничении.
В раскрывающемся меню диалога Merge into теперь есть опция Allow unrelated histories. При выборе этой опции можно объединить две ветки, даже если у них нет общей истории.
В окне Git кнопка Show all branches заменена на фильтр веток, позволяющий просматривать изменения в указанной ветке для конкретного файла. Кроме того, панель инструментов теперь располагается горизонтально для удобства использования.
В окне Commit появилась специальная вкладка для удобного доступа к временно не зафиксированным изменениям. Если для откладывания изменений вы используете и стэши (stashes), и шелвы (shelves), можете включить объединенную вкладку Stashes and Shelves в настройках (Settings/Preferences | Version Control | Git).
Чтобы вы могли сосредоточиться только на значимых изменениях, в инструменте просмотра различий теперь можно указать, какие папки и файлы следует игнорировать в процессе сравнения. Просто щелкните правой кнопкой мыши по файлу или папке, которые не должны отображаться в результатах сравнения, и выберите Exclude from results в контекстном меню.
Во окне Branches теперь можно фильтровать результаты поиска по действиям и репозиториям для более быстрой и точной навигации в системе контроля версий.
Проанализировав статистику использования, мы решили убрать вкладку Git из диалога Search Everywhere. Если вы хотите ее вернуть, отметьте галочкой опцию Show Git tab in Search Everywhere в настройках Settings / Preferences | Advanced Settings | Version Control. Git.
Теперь IntelliJ IDEA быстро формирует проектную модель путем анализа файлов pom.xml
. Вы получаете рабочую структуру за считанные секунды, а полная модель проекта со всеми зависимостями строится в фоновом режиме. Можно приступать к работе, не дожидаясь завершения синхронизации.
Мы добавили долгожданную поддержку функциональности переименования Maven Shade Plugin. Теперь IntelliJ IDEA точно распознает этот процесс и обеспечивает правильную подсветку синтаксиса и навигацию при работе с затененными JAR-файлами и их зависимостями.
Доступ к исходному коду из всплывающего окна быстрой документации стал проще. Если вы читаете документацию к библиотеке или зависимости и хотите посмотреть ее исходный код, просто нажмите F1 — в окне появится прямая ссылка для загрузки исходных файлов.
Список Maven-репозиториев вместе со статусами индексации теперь отображается в окне Maven, а не в настройках Maven, как было раньше.
Начиная с этой версии, IntelliJ IDEA не поддерживает проекты, использующие версии Gradle старше 4.5, и не будет выполнять синхронизацию с Gradle для таких проектов.
В IntelliJ IDEA 2024.1 стало удобнее расставлять точки останова в строках с лямбда-функциями и return-выражениями. Когда вы кликаете по полю редактора, чтобы поставить точку, IDE автоматически показывает, где еще можно добавить точки останова. Каждую точку можно настроить по отдельности, что улучшает возможности отладки.
Библиотечные вызовы в окне Debug теперь по умолчанию свернуты, что помогает сосредоточиться на коде. Если нужно посмотреть последовательность библиотечных вызовов, просто разверните группу и изучите фреймы. Для этого нажмите на значок фильтра на панели инструментов или вызовите контекстное меню и отключите опцию Hide Frames from Libraries.
IntelliJ IDEA 2024.1 еще на один шаг приблизилась к полному покрытию тестами. В этом обновлении основное внимание уделяется обнаружению непокрытых условных выражений. IntelliJ IDEA не только показывает, на какой строке есть непокрытое условие, но и указывает на любые ветви условий или значения переменных, которые не были протестированы. Эта функция включена по умолчанию, и вы можете управлять ею в разделе Settings/Preferences | Build, Execution, Deployment | Coverage.
Мы перенесли настройки покрытия кода из всплывающего окна Run Configuration в раздел Settings/Preferences | Build, Execution, Deployment | Coverage. Это устраняет необходимость изменять конфигурацию для каждого запуска тестов, чтобы выбрать инструмент оценки покрытия кода или включить дополнительные функции, например отслеживание того, какие тесты покрывают определенную строку кода.
Теперь стало проще импортировать, просматривать и анализировать данные о покрытии кода, которые собирает раннер JaCoCo в вашем CI/CD-пайплайне. Если в окне Coverage отчетов нет, вы найдете там прямую ссылку для импорта отчетов JaCoCo. А на панели инструментов этого окна появилась иконка, которая позволяет получить отчет JaCoCo в формате .exec
.
IntelliJ IDEA Ultimate теперь предлагает автодополнение для всех бинов, определенных в вашем приложении, и автоматически подключает их. Если бин автоматически подключает зависимости через конструктор, связанное с ним поле также автоматически подключается через этот конструктор. Аналогично, если зависимости внедряются через поля или через Lombok-аннотацию @RequiredArgsConstructor
, новый бин автоматически подключается через поле.
Мы упростили доступ к диаграммам модели Spring. Теперь их можно вызывать, используя маркеры бинов или контекстные действия (Alt+Enter) на классах Spring. Мы также добавили новые значки для диаграмм, улучшив визуализацию стереотипных аннотаций Spring, таких как компоненты, контроллеры, репозитории и бины конфигурации. Кроме того, теперь удобно изменять видимость библиотечных бинов, которые по умолчанию скрыты.
HTTP-клиент в IntelliJ IDEA 2024.1 предлагает больше вариантов аутентификации, включая методы PKCE (Proof of Key Code Exchange) Authorization Code и OAuth 2.0 Device Authorization Grant. Кроме того, поддерживаются дополнительные параметры для запросов токенов и аутентификации, а также автоматически обрабатывается генерация code_challenge
и передача code_verifier
для получения токенов при запросах PKCE. Переход HTTP-клиента на Netty в качестве низкоуровневой сетевой библиотеки обеспечивает поддержку SSL, прокси и HTTP/2, что облегчает внедрение HTTP/2. Мы также обновили панель инструментов в HTTP-клиенте, чтобы она лучше соответствовала стилю нового интерфейса.
Мы улучшили диалог Search Everywhere, добавив вкладку Endpoints, которая появляется в проектах, где важны результаты поиска по URL. Если в вашем есть технологии Spring, Micronaut, Ktor или Quarkus, вкладка появится автоматически.
Теперь во всех распространенных сценариях работает автодополнение HTTP-заголовков: например, при использовании Spring WebClient и в тестах REST Assured. Когда встречается ожидаемое значение, появляется всплывающее окно с вариантами автодополнения.
Мы оптимизировали код, лежащий в основе валидации и автодополнения JSON-схем. В результате IDE справляется с этими задачами быстрее и с меньшим потреблением памяти. В реальных файлах с Azure Pipelines проверка схем теперь выполняется в 10 раз быстрее.
Мы добавили новый редактор настроек для конфигурации запуска Quarkus, а также улучшили интерфейс диалога Run/Debug Configuration как для Maven-, так и для Gradle-проектов, упростив доступ к популярным настройкам Run profile и Environment variables. Кроме того, на панели инструментов в окне Run появился значок для быстрого доступа к Quarkus Dev UI.
В IntelliJ IDEA Ultimate 2024.1 интегрирован OpenRewrite. Это расширяет возможности рефакторинга в IDE и предоставляет вам набор инструментов для повышения качества и удобства сопровождения кода. Используя рецепты OpenRewrite, вы сможете модернизировать устаревший код, оптимизировать производительность и решать сложные задачи миграции, например переход на новую версию Spring Boot.
Мы добавили поддержку WireMock через плагин, который можно установить прямо из IDE или скачать с JetBrains Marketplace. С плагином вы сможете пользоваться автодополнением схем в JSON-конфигурациях, генерировать файлы заглушек WireMock в окне Endpoints и запускать серверы прямо из редактора. Это позволит вам быстро создавать тестовые серверы и заглушки, упрощая разработку веб-интерфейсов и микросервисов.
Благодаря расширению поддержки Terraform, в IntelliJ IDEA Ultimate 2024.1 проще создавать инфраструктуру, масштабировать ее и управлять ею. Теперь IDE предлагает запустить terraform init
для ускорения инициализации, а также предоставляет расширенное автодополнение для более чем 3900 компонентов Terraform, созданных сторонними разработчиками. Кроме того, в IDE появилась поддержка языка шаблонов Terraform (tftpl), позволяющая создавать динамические шаблоны и легко интегрировать их с вашим языком программирования. Подробнее
В этой версии появилась долгожданная функция локальных фильтров в редакторе данных. Теперь можно быстро отсортировать строки по значениям столбцов без отправки запросов к базе данных. Такие локальные фильтры действуют только для текущей страницы. Если нужно отфильтровать больший объем информации, просто измените размер страницы или загрузите все данные. Чтобы отключить все локальные фильтры, отмените выбор иконки Enable Local Filter.
В IntelliJ IDEA Ultimate 2024.1 выполнение запросов стало проще благодаря отказу от ручного выбора сессий. Теперь, чтобы прикрепить файл, достаточно выбрать только источник данных, а не сессию. Кроме того, выбирать сессию не придется и для запуска функций: теперь их можно запускать прямо из консоли или файла. Эти изменения упрощают знакомство с инструментом для новичков и делают его удобнее для всех за счет сокращения количества шагов.
Мы значительно улучшили всплывающее окно быстрой документации. Теперь в нем работает подсветка синтаксиса в блоках кода. Для TypeScript отображаются члены интерфейса, перечисляемые константы и тела псевдонимов типов. По ссылке Show more можно посмотреть полный список членов типа и перейти к ссылочным типам. Кроме того, теперь можно перемещаться между несколькими объявлениями интерфейсов, псевдонимами типов, перечислениями, функциями и другими сущностями с помощью элемента управления в верхней части диалога.
В IntelliJ IDEA Ultimate 2024.1 появилось несколько новых быстрых исправлений для React, которые позволяют создавать пропсы и состояния на лету. Применяйте эти исправления с помощью сочетания клавиш Alt+Enter.
В строке состояния появился новый виджет Language Services, который показывает, какие языковые сервисы активны для текущего файла и проекта. Сервисы можно перезапустить или перейти к их настройкам прямо из этого виджета.