IntelliJ IDEA Releases

Вышла IntelliJ IDEA 2021.2

Read this post in other languages:
English

Вышел наш летний релиз — IntelliJ IDEA 2021.2! Обновление можно скачать с нашего сайта или в Toolbox App. Кроме того, можно обновиться из самой IDE или с помощью snap-пакета, если вы являетесь пользователем Ubuntu.

В новой версии IDE появилось множество разнообразных новых функций, благодаря которым работать с IntelliJ IDEA станет проще и приятнее. В основном эти изменения разрабатывались с учетом информации в баг-трекере: полученная обратная связь — наш основной источник информации о ваших потребностях и возникающих сложностях. Мы будем очень благодарны за отзывы о новой версии и за помощь в устранении ошибок, с которыми вы можете столкнуться.

О самых важных изменениях рассказывается в нашем видеообзоре:

Как всегда, подробную информацию обо всех новых возможностях вы найдете в серии статей в блоге и на странице «Что нового».

В этой статье дан краткий обзор важнейших новых функций и улучшений в версии 2021.2.

Главные изменения

  • Новая функция анализа кода в масштабе всего проекта позволяет найти ошибки в небольших и средних проектах перед их компиляцией. Эта функция доступна только в IntelliJ IDEA Ultimate.
  • Мы добавили в IDE несколько действий, которые могут выполняться при сохранении изменений в проекте, в том числе форматирование кода и оптимизацию импортов. Эти действия собраны в меню Preferences / Settings | Tools | Actions on Save.
  • Управлять зависимостями Maven и Gradle стало проще с помощью нового эффективного интерфейса пакетного поиска. Кроме того, теперь можно посмотреть, есть ли новые версии зависимостей, и при необходимости обновить их прямо из редактора.

Редактор

  • Описания инспекций и быстрых исправлений стали полнее. В некоторых описаниях приведены примеры использования.
  • Диаграммы стали информативнее: их можно просматривать в режиме Structure, который представляет собой схему диаграммы с возможностью предпросмотра выбранного блока и его соседей.
  • Уведомление об авторских правах на проект по умолчанию включает в себя как год создания проекта, так и год текущей версии.
  • Улучшена поддержка Markdown: теперь можно конвертировать файлы .md в различные форматы и наоборот, настраивать размер изображений и вставлять изображения путем перетаскивания. Кроме того, мы исправили ошибки форматирования списков и добавили новую плавающую панель инструментов, которая активируется, только когда она вам нужна.

Взаимодействие с IDE

  • Новая версия IntelliJ IDEA автоматически находит проекты Eclipse, хранящиеся на локальной машине, поэтому теперь их можно открыть прямо из папки на приветственном экране.
  • В новом узле Advanced Settings в меню Preferences/Settings доступны продвинутые настройки для IDE.
  • Упорядочить окна стало проще: просто нажмите на заголовок и перетащите в любую выделенную область внутри основного окна IDE или за его пределы в отдельное окно.
  • IntelliJ IDEA автоматически очищает директории кэша и журналов, обновлявшиеся более 180 дней назад.
  • Если в проекте отсутствует плагин для используемого фреймворка, IDE предупредит об этом и предложит включить его.
  • Мы упростили перемещение между разделами Preferences/Settings: в правом верхнем углу окна появились удобные стрелки.
  • IDE сообщит о появлении обновлений для любых продуктов, если вы используете Toolbox App 1.20.8804 или более поздней версии.
  • Мы добавили новые специальные возможности для пользователей macOS: озвучили варианты автодополнения кода, выбранного пункта в поле со списком и всего списка целиком, а также результаты поиска при использовании функции Search Everywhere.
  • В этой версии устранена проблема зависания интерфейса при использовании контекстных меню, всплывающих окон и панелей инструментов. Кроме того, мы вынесли из потока пользовательского интерфейса некоторые операции, требующие индексации.

Java

  • Можно различными способами разметить публичные, защищенные и частные методы, поля и классы Java. Чтобы настроить разметку, перейдите в Preferences/Settings | Editor | Color Scheme и разверните узел Visibility.
  • Мы добавили новый визард для создания проектов JavaFX.
  • Для отдельных сценариев использования при анализе потока данных мы добавили несколько новых инспекций, в том числе для отслеживания диапазона чисел с плавающей точкой или размера коллекции для методов обновления. Подробнее об этом — в нашем блоге.

Kotlin

  • Начиная с этой версии, функция автодополнения кода Kotlin по умолчанию использует механизм машинного обучения.
  • Вам не нужно ждать завершения анализа кода, чтобы выполнить тесты: их можно запустить сразу после открытия файла, нажав на значок Run test в редакторе.
  • К агенту корутин можно перейти через вкладку Coroutines в окне Debug. Он работает для конфигураций запуска Java с зависимостью от coroutines, а также для конфигураций запуска Spring и Maven.
  • Теперь кнопки, связанные с Run/Debug Configuration, активны во время индексации, и вы можете запустить приложение и выполнять его отладку, пока IDE индексирует проект.
  • Мы обеспечили поддержку WSL 2 и реализовали функцию Run Targets для Kotlin.
  • Добавлена новая инспекция, позволяющая IntelliJ IDEA упростить синтаксис и объединить цепочку из нескольких вызовов методов внутри коллекции.
  • Мы добавили новое intention-действие для преобразования buildString.

JavaScript (только в IntelliJ IDEA Ultimate)

  • При предварительном просмотре HTML-файлов в браузере IDE автоматически отображает все сделанные и сохраненные изменения в HTML-файле или связанных с ним файлах CSS и JavaScript.
  • IntelliJ IDEA может одновременно переименовывать значения useState и соответствующие функции в React hooks.
  • Прежние версии IDE умели добавлять отсутствующие операторы импорта при вводе символов в модулях ES6. Теперь то же самое возможно для модулей CommonJS: при автодополнении кода будет вставлен оператор require.

Scala

  • Значительно улучшена поддержка Scala 3. Индексация выполняется быстрее и точнее, а также теперь можно создавать проекты Scala 3 на основе sbt и .idea. Помимо Scala 3 SDK, мы обеспечили поддержку конструкций Scala 3 в проектах Scala 2 (-Xsource:3) и сделали много других улучшений.
  • Чтобы избежать появления ложных ошибок, для подсветки ошибок можно использовать возможности компилятора. Однако нужно помнить, что этот вариант точнее, но медленнее, требует больше ресурсов и не поддерживает такие функции, как подсказки о несоответствии типов, быстрые исправления и инспекции.

Профилировщик (только в IntelliJ IDEA Ultimate)

  • В новой версии IntelliJ IDEA обеспечена полная поддержка профилировщика в Windows и Apple M1 в дополнение к Linux и macOS на других чипах. Таким образом, теперь профилировщик можно использовать в большинстве сред.
  • IDE поддерживает Async Profiler 2.0, объединяющий возможности профилировщиков ЦП и распределения ресурсов. Он работает с использованием новой конфигурации Async Profiler.
  • Теперь на вкладке Retained Objects данные выбранного объекта отображаются в виде диаграммы «солнечные лучи».

Инструменты сборки

  • Теперь при работе с пользовательской JDK можно добавлять новые артефакты JLink.
  • Теперь в WSL 2 можно выполнять задания Ant.
  • Конфигурации запуска и отладки Gradle были усовершенствованы. Мы собрали все основные настройки в одном окне, и при необходимости туда можно добавить и другие параметры.
  • Скорость индексации проектов в WSL 2 увеличена.

Система контроля версий

  • Теперь перед коммитом изменений можно их тестировать.
  • Раньше ход и результаты всех проверок перед коммитом отображались в отдельных модальных окнах. В новой версии информация выводится в области Commit.
  • В IntelliJ IDEA 2021.2 можно защитить коммиты в Git с помощью цифровой подписи GPG.
  • Узел, где хранятся изменения до коммита, в новых проектах называется Changes, а не Default changelists. Кроме того, операции Git больше будут автоматически создавать списки изменений.
  • При выполнении действия Show Diff окно с результатами будет по умолчанию открываться в редакторе.
  • Стало удобно искать текст в локальной истории изменений: просто введите запрос в поле поиске в диалоговом окне Local History.

Терминал

  • Во встроенном терминале появились две новые возможности: выбор формы курсора и использование клавиши Option (⌥) в качестве мета-модификатора других клавиш.

Отладчик

  • Вкладка Preview теперь работает в отладчике. Вкладка Preview теперь работает в отладчике. Если эта функция включена, IDE открывает файлы друг за другом в одной вкладке, когда вы останавливаете выполнение кода в точке останова, выполняете код пошагово, переключаетесь между фреймами или используете действия prev/next frame.

Фреймворки и технологии (только в IntelliJ IDEA Ultimate)

  • В окне Endpoints можно вывести схему связей микросервисов, где можно проследить, какой клиент вызывает тот или иной сервис, и перейти к соответствующему вызову в коде. Схема доступна для проектов Java и Kotlin, если вы используете фреймворки Spring, Micronaut, Quarkus или Helidon.
  • Новый рефакторинг Migrate позволяет легко перенести проект или модуль с Java EE на Jakarta EE.
  • Если вы создаете новый проект Spring Initializer, IDE автоматически скачает заранее построенные индексы. Это позволяет сократить время на индексацию и ускоряет запуск IDE.
  • Мы реализовали поддержку графа сущностей, который можно определить с помощью аннотации @NamedEntityGraph. Для атрибутов аннотации работает автодополнение кода, обнаружение ошибок и навигация.
  • Мы добавили поддержку аннотаций кэша в Micronaut и Quarkus. С помощью значков редактора можно перемещаться между использованиями имени кэша, использовать действие Find usages и рефакторинг Rename для идентификаторов кэша.
  • Навигация по URL-адресам в JavaScript и TypeScript значительно улучшена как для клиентского (Angular или Axios), так и для серверного (Express) кода.
  • Плагин Protocol Buffers интегрирован с IntelliJ IDEA Ultimate, и команда JetBrains теперь обеспечивает его полную поддержку.
  • Теперь IntelliJ IDEA Ultimate поддерживает фреймворк gRPC. Первая возможность, которую мы реализовали — просмотр конечных точек gRPC в окне Endpoints.
  • В новой версии проекты Ktor можно создавать прямо на начальном экране: в IntelliJ IDEA Ultimate встроена поддержка этого фреймворка.

Интеграция со Space

  • Теперь на вкладке Log окна Git можно использовать значки для статусов заданий Space. При нажатии на значок откроется всплывающее окно с автоматической информацией о задании.
  • Теперь во время ревью кода в Space можно упомянуть коллегу: для этого нужно ввести @, а затем имя нужного человека.
  • В новой версии IDE можно отобразить связанные ветки в выбранном ревью кода на вкладке Details .

Code With Me

  • Во время сеанса работы в Code With Me в режиме Following можно видеть предложения функции автодополнения кода, которые использует коллега, за чьей работой вы следите.
  • Переработанная логика Undo позволяет как ведущему разработчику, так и гостям отменять только собственные изменения в коде. Это особенно полезно при парном и групповом программировании.
  • В версии 2021.2 можно продемонстрировать коллегам окно любого приложения на экране компьютера, а не только окно IDE JetBrains.
  • Пользователи могут поделиться с другими участниками сеанса открытыми портами — для этого используется встроенный прокси. Если ведущий запускает приложения, используя определенный порт, остальные могут получить к нему доступ через локальный хост на своих машинах.
  • Недавно Code With Me запустил два новых сервера ретрансляции: один на западном побережье США, второй — в ЮАР. Это значительно ускорило совместную разработку в этих регионах.

Инструменты работы с базами данных (только в IntelliJ IDEA Ultimate)

  • В новой версии можно создать источник данных DDL на основе обычного. Локально создаются файлы DDL, а на их основе — новый источник данных.
  • Теперь в меню Preferences/Settings | Tools | Database | General можно выбрать, после каких операций будет появляться окно Services.
  • Автодополнение кода теперь работает для различных типов полей и операторов в консоли MongoDB.

Инструменты QA

  • Новый плагин Test Data позволяет выполнять множество действий для генерации случайных данных для юнит-тестов.

Docker

  • К Docker можно подключиться через SSH.
  • В журналах контейнера можно настроить показ меток времени и предыдущих сеансов.
  • Новые кнопки действий для контейнеров позволяют быстро запускать и перезапускать их, а также приостанавливать и возобновлять их работу. Все эти действия можно выполнить сразу для нескольких контейнеров.
  • Мы реализовали новый способ удаления образов с существующими зависимостями. Теперь можно указать, какие зависимости следует удалить, а какие — сохранить.
  • В окне Services появились два новых узла: Networks и Volumes.

Добавлены новые возможности для Docker Compose:

  • Приложения Docker Compose можно отобразить в окне Services, даже если они не запущены. Для этого надо нажать на кольцевые стрелки в окне редактора.
  • Новые значки помогают понять, в каком состоянии находится сервис. Подсказки помогут понять значение каждого значка.
  • Теперь у каждого узла сервиса есть журнал.
  • В настройках Run/Debug Configurations появились новые параметры Docker Compose, в том числе Enable BuildKit, Enable compatibility mode и Specify project name.
  • Мы добавили поддержку формата файлов Docker Compose версии 3.

Kubernetes (только в IntelliJ IDEA Ultimate)

  • В IntelliJ IDEA 2021.2 реализована полная поддержка поля alias в разделе dependencies в yaml (api v2) или requirements.yaml (api v1).
  • Если у вас есть права доступа лишь к некоторым пространствам имен в кластере, вы можете определить собственные пространства имен.
  • Можно указать избранные пространства имен, которые будут отображаться в начале списка.

Другие возможности

  • Начиная с этой версии, пользовательский интерфейс IntelliJ IDEA полностью локализован на китайский, корейский и японский языки. Локализованный интерфейс можно скачать в виде плагинов с отдельными языковыми пакетами, которые легко установить в IDE.
  • Плагин Android обновлен до версии 4.2.0.
  • Мы убрали из комплекта следующие плагины: Resource Bundle Editor, Drools, JSP Debugger Support, CoffeeScript, Spring Web Flow, Spring OSGI, Arquillian, AspectJ, Guice, Helidon, Emma и EJB.

Важные исправления

  • Исправлена ошибка, появлявшаяся при нажатии на Download sources в проектах Maven. [IDEA-247792]
  • Обеспечена поддержка .mvn/jvm.config для определения конфигураций JVM в сборках Maven. [IDEA-205178]
  • Исправлено поведение клавиши Esc в некоторых диалоговых окнах. [IDEA-270541]
  • Окна в Linux открываются по щелчку мыши. [IDEA-270699]
  • Улучшена производительность покрытия кода — она сравнялась с JaCoCo.
  • Исправлена неверная кодировка в файлах .properties. [IDEA-266551]
  • IDE автоматически удаляет пустые скретч-файлы. [IDEA-194931]
  • Исправлена ошибка, из-за которой IDE зависала в диалоговом окне миграции плагинов после удаления конфигураций и перезапуска. [IDEA-270855]
  • Исправлена ошибка NullPointerException при создании нового проекта Maven из существующих источников в директории WSL 2. [IDEA-265641]
  • Исправлена ошибка, из-за которой неправильно отображались диалоговые окна подтверждения. [IDEA-271191]
  • Если при извлечении константы поставлен флажок Replaces all the occurrences, IDE запоминает этот состояние и сохранит настройки, когда вы в следующий раз примените этот рефакторинг. [IDEA-162111]
  • Исправлен ряд ошибок, влиявших на вычисление переменных в коде Kotlin. [KTIJ-7604], [KTIJ-3018], [KTIJ-2425], [KTIJ-302].
  • Объекты Kotlin корректно отображаются в режиме просмотра Variables. [KTIJ-780]
  • Исправлена ошибка соединения с серверами ретрансляции, которые не работали, когда использовался прокси с аутентификацией. [CWM-2712]

Мы рассказали об основных изменениях, появившихся в IntelliJ IDEA 2021.2. Полный список всех новых возможностей, исправлений и улучшений приведен в примечаниях к релизу.

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

Программируйте с удовольствием!

Ваша команда IntelliJ IDEA

The Drive to Develop

Автор оригинальной статьи:

Oksana Mandryka

Irina Maryasova

Discover more