IntelliJ IDEA News Releases

IntelliJ IDEA 2021.3

Read this post in other languages:
English, Deutsch, 简体中文

Представляем IntelliJ IDEA 2021.3 — последнее большое обновление в 2021 году! Новую версию можно скачать с сайта JetBrains или через Toolbox App. Кроме того, можно обновиться из самой IDE или с помощью snap-пакета, если вы являетесь пользователем Ubuntu.

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

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

Главное

  • В этом релизе мы представляем возможности удаленной разработки (бета). Теперь вы можете подключаться к удаленному компьютеру, на котором запущен бэкенд IDE, и работать над размещенным там проектом, как если бы он находился на локальной машине. Чтобы воспользоваться этой функцией можно с начального экрана IntelliJ IDEA или скачав JetBrains Gateway через Toolbox App.
  • Добавлен новый, более быстрый способ диагностики и устранения проблем в работе IDE: действие Repair IDE… в меню File.
  • Действие Smart Step Into теперь работает с кодом Kotlin. Оно позволяет выполнить отладку выражения с цепочкой вызовов методов и лямбд, подсвечивая те методы и лямбды, в которые можно зайти.
  • Отладчик умеет находить inline-функции Kotlin и показывать их вызовы на панели трассировки стека.
  • Новая инспекция Constant conditions позволяет IntelliJ IDEA сообщать о нетривиальных условиях и значениях, которые должны всегда являться истинными, ложными или нулевыми. Она работает так же, как аналогичная инспекция для Java.

Редактор

  • Размер шрифта можно изменить во всех вкладках одновременно с помощью сочетания ⌘+колесико мыши в macOS и Ctrl+колесико мыши в Windows и Linux.
  • В новой версии удобно вставлять таблицы в файлы Markdown.
  • Предварительный просмотр теперь доступен для большинства intention-действий и быстрых исправлений в Kotlin. Если предпросмотр не поддерживается, отображается HTML-описание.
  • Работать со вкладками редактора стало проще. Чтобы получить доступ ко всем действиям на вкладках, просто нажмите на три точки в правом верхнем углу панели вкладок.

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

  • При нажатии клавиши F3 в macOS или F11 в Windows и Linux отмеченные файлы, папки и классы отобразятся в новом окне Bookmarks. Подробнее можно узнать из этой статьи.
  • Мы добавили возможность разделять окно Run, используя вкладки. Благодаря этому можно одновременно запускать несколько конфигураций и видеть все результаты.
  • При поиске действий через Search Everywhere в IntelliJ IDEA используется машинное обучение для сортировки результатов.
  • Переработанный узел Empty Project в окне мастера создания проекта позволяет создать простой проект для работы с отдельными файлами разных типов и добавить в него классы Java и Kotlin.
  • Новый узел Multi-Module Project позволяет с нуля создать проект со сложной структурой.
  • Новая версия IntelliJ IDEA по умолчанию использует методы более высокого уровня в качестве объекта поиска, когда вы ищете использования реализации методов с помощью сочетаний клавиш ⌥ F7 в macOS или Alt+F7 в Windows и Linux.
  • В диалоге Show Usages теперь доступен предпросмотр исходного кода для найденных использований, а также можно изменить область поиска и посмотреть тип искомого элемента кода и количество найденных использований.

Режим специальных возможностей

  • Когда активен инструмент чтения с экрана, IDE больше не показывает всплывающее окно со списком окон инструментов и всплывающее окно быстрого просмотра документации, которые появлялись по наведению мыши.
  • Кроме того, мы устранили проблему с вызовом диалога Go to Declaration.
  • Поддержка режима специальных возможностей на macOS также была улучшена. Мы устранили ряд проблем с фокусом VoiceOver и дали инструментам чтения с экрана возможность находить пункты списка в мастере New Project при создании проекта.
  • Мы убрали некоторые подсказки со звуком, чтобы снизить количество отвлекающих факторов.

Java

  • В IntelliJ IDEA добавлена новая инспекция Non-safe string passed to a safe method. Она помогает предотвратить передачу небезопасных данных безопасным методам в проектах, использующих аннотации org.checkerframework.checker.tainting.qual. В числе проблем, которые находит эта инспекция, вставки SQL-кода и слабые места XSS.
  • Мы добавили две инспекции, которые помогут упростить код. Первая предлагает заменить collect(toList()) на .toList(). Ее можно использовать с Java 16 и более поздними версиями. Вторая предлагает заменить collection.addAll(List.of(“x”)) на collection.add(x), а map.putAll(Map.of(“a”, “b”)) — на map.put(“a”, “b”).
  • При вводе локальной переменной в Java больше не открывается всплывающее окно с настройками, закрывающее код, над которым вы работаете. Теперь открыть настройки можно с помощью значка шестеренки рядом с переменной или сочетанием клавиш⌥+⇧ +O в macOS или Alt+Shift+O в Windows.
  • При вызове рефакторинга Introduce parameter IDE спрашивает, где именно нужно заменить найденные вхождения. Когда вы выберете нужное, появится значок шестеренки. Нажав на него, можно будет настроить и другие параметры рефакторинга.
  • В диалоге Run/Debug Configurations можно задать classpath для отдельных конфигураций, выбрав Modify options | Modify classpath.

Kotlin

  • Новый рефакторинг позволяет извлекать константы в Kotlin.
  • Инспекцию Possibly blocking call in non-blocking context теперь можно настроить, она охватывает больше случаев и предлагает быстрое исправление.
  • Новые подсказки в редакторе с помощью математических знаков объясняют, что значат слова и символы в диапазонах.
  • В интерфейсе мастера создания проектов теперь есть подсказки для всех полей. Кроме того, мы удалили некоторые редко используемые шаблоны и добавили новый для создания приложений Compose Web, а также упростили настройку проекта.

JavaScript

  • Обновить npm-пакеты до новой версии можно прямо из редактора.
  • Улучшена работа автодополнения HTML-кода. Теперь при вводе имени тега или аббревиатуры и при вызове автодополнения IntelliJ IDEA сразу же показывает подходящие варианты.

Scala

  • Большое внимание при подготовке этого релиза мы уделили поддержке Scala 3. Мы добавили подсветку, навигацию и автодополнение для маркеров end, ключевых слов given, usingи export, для мягких ключевых слов и «тихого» синтаксиса. Кроме того, инструмент чтения TASTy теперь может обрабатывать package objects, а также вариантность и связи в более высоких типах.
  • Перекрестно скомпилированные проекты Scala 3/Scala 2 можно открывать как проекты Scala 2.
  • Теперь плагин Scala поддерживает анализ потоков данных, что упрощает поиск ошибок в коде.
  • Для параметров компилятора Scala теперь работает автодополнение, и по каждому из них доступен быстрый просмотр документации.
  • Для диапазонов в Scala можно использовать встроенные подсказки.

SSH

  • Для конфигурации SSH можно указать прокси-сервер HTTP или SOCKS (Preferences/Settings | Tools | SSH Configurations).

Профилировщик

  • В версию IntelliJ IDEA Ultimate для Windows встроена поддержка Async Profiler 2.0.
  • Можно сравнить снэпшоты, чтобы проверить, дали ли изменения в программе ожидаемый эффект или привели к ухудшению.

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

  • Конфигурации Maven были существенно переработаны. Все основные параметры теперь собраны в одном окне, а к дополнительным настройкам можно перейти по ссылке Modify options.
  • Можно сохранить настройки Maven для каждого проекта в файле .mvn/maven.config. Для этого перейдите в Preferences/ Settings | Build, Execution, Deployment | Maven и выберите Use settings from .mvn/maven.config.

Управление версиями

  • Функцию Checkout and Rebase onto Current можно использовать для удаленных веток.
  • Мы улучшили структуру настроек в меню Preferences/Settings | Version Control и упростили доступ к некоторым важным конфигурациям.
  • Разницу между коммитами теперь можно посмотреть в отдельном окне Changes слева от редактора.
  • Новое действие Push all up to here позволяет делать push коммитов, в которых вы уверены (остальные продолжат храниться локально).
  • Новая настройка Align Changes Highlighting упрощает восприятие информации на экране Diff: строки без изменений отображаются друг напротив друга. В результате вы четко видите, какой код был добавлен или удален.

Терминал

  • Новая функция поддержки API ConPTY для Windows решает ряд проблем, связанных со старой реализацией, и обеспечивает поддержку 24-разрядных цветов в терминале.
  • В терминале появилась поддержка опережающего ввода: IDE предсказывает, какие символы вы собираетесь вводить, и показывает их в светло-сером цвете.

Отладчик

  • Теперь поле Evaluate доступно прямо в окне Debug, и это самый удобный способ вычисления выражений.

Фреймворки и технологии

  • HTTP-клиент IntelliJ IDEA обеспечивает базовую поддержку gRPC-запросов, включая автодополнение кода и возможность создания gRPC-запросов прямо в HTTP-клиенте.
  • При тестировании приложений, выполняющих потоковую передачу данных в IntelliJ IDEA, больше не нужно ждать окончания потока: HTTP-клиент отображает результаты в реальном времени.
  • HTTP-клиент находит изображения в ответах и показывает их превью в консоли ответа.
  • В HTTP-клиенте можно настроить перенаправление вывода в заданный файл или директорию с помощью операторов >> и >>!.
  • Идентификаторы запросов можно добавлять либо в виде комментариев с использованием @name, либо в виде текста в первом разделителе (###).
  • Поддержан новый язык шаблонов Qute для проектов на базе Quarkus.
  • IntelliJ IDEA может находить спецификации OpenAPI, сохраненные в нескольких файлах и связанные с помощью $ref, и обеспечивает автодополнение.
  • Если добавить в зависимости проекта org.jetbrains:annotations:23.0.0, можно добавлять к классам и методам аннотации @Blocking и @NonBlocking. В результате IDE сможет находить блокирующие вызовы в неблокирующих контекстах, например, в корутинах Kotlin или в реактивном коде Project Reactor, RxJava и SmallRye Mutiny.
  • Улучшено обнаружение блокирующего кода в Spring и Java EE.
  • Диалог Run/Debug Configurations для проектов Spring Bootбыл переработан, и теперь все основные настройки находятся в одном окне, а к дополнительным параметрам можно перейти по ссылке Modify Options.
  • IntelliJ IDEA предлагает автодополнение кода в дополнительных файлах конфигурации (файлы properties или .yaml), если для ссылки на другой файл используется ключ spring.config.import.
  • В проектах Spring Boot поддерживается автодополнение кода и поиск использований ссылок на application.yaml в @Value, @Scheduled и Environment.getProperty().
  • Автодополнение методов запросов теперь работает и для запросов, объявленных как @NamedQuery в проектах Spring Data JPA. К определению @NamedQuery можно перейти щелкнув по иконке на полях редактора.
  • Теперь все инспекции CDI можно использовать в файлах Kotlin. Также доступны иконки CDI на полях редактора. С их помощью можно быстро перейти к точкам внедрения зависимости и кандидатам, фабрикам bean-компонентов и событиям.
  • Мы ускорили все процессы для диаграмм классов UML как в Java, так и в Kotlin. Среди других важных изменений — новая сетка, подсветка членов класса и всплывающее окно быстрого просмотра документации.

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

  • Теперь вы можете создавать merge-реквесты и код-ревью для проектов в Space.
  • IntelliJ IDEA отмечает все непроверенные файлы синими точками, чтобы вы не пропустили важные изменения во время код-ревью.

Инструменты для работы с базами данных

  • Мы добавили возможность выбрать режим Aggregate для просмотра диапазона ячеек. Благодаря этому управлять данными стало удобнее и можно не отправлять лишние запросы.
  • В новой версии полностью поддерживается рабочий процесс создания источника данных DDL на основе реального. В настройках конфигурации данных появилась новая вкладка DDL mappings, на ней можно соотнести виртуальные источники данных с реальными.
  • Новое окно сравнения Database diff можно открыть из контекстного меню. Его интерфейс был улучшен, и оно четко отображает результат синхронизации в правой панели.
  • Мы ввели три уровня интроспекции баз данных Oracle, с разной скоростью выполнения. Чтобы изменить уровень интроспекции, воспользуйтесь контекстным меню.

Kubernetes

  • Значительно улучшено форматирование шаблонов Helm.
  • Стало гораздо проще работать с кодом, содержащим вставки шаблонов Go: мы добавили подсветку для блочных элементов Helm if, else, range, with и define.
  • Новая версия IntelliJ IDEA поддерживает подсветку вложенного кода на разных языках в ресурсах ConfigMap для ключей с расширениями .yaml, .json, .properties и т. п.
  • В окне Services появилась кнопка для повторения последней команды Helm.

Docker

  • В меню Preferences/Settings | Build, Execution, Deployment с помощью переключателя Minikube можно подключиться к Docker из Minikube.
  • Все доступные репозитории образов отображаются в окне Services в отдельных узлах. Кроме того, добавлена поддержка GitLab (registry.gitlab.com) и JetBrains Space (<username>.registry.jetbrains.space). Подробнее об изменениях в реестрах Docker читайте в этой статье.
  • Теперь подключиться к Docker можно быстрее: достаточно дважды щелкнуть по нужному узлу или нажать ⌘+Enter в macOS или Ctrl+Enter в Windows и Linux. Действие Start container вызывается этим же сочетанием клавиш.
  • При щелчке правой кнопкой на узлах Networks, Volumes, Containers или Images можно выбрать новое действие Clean up, и IDE удалит неиспользуемые объекты.
  • Мы добавили поддержку Compose V2. Благодаря этому команды Docker Compose можно вводить в форме docker compose, а не docker-compose (с дефисом).
  • Новая вкладка Layers в окне Services позволяет отслеживать содержимое слоев, размер файлов и команды, которые были использованы при создании образа.
  • В окне Services можно щелкнуть правой кнопкой на контейнере и выбрать Image | Save as a new Image, чтобы сохранить на сервере предварительно настроенный локальный контейнер и использовать его позднее.
  • В новой версии появилась поддержка Podman — еще одного способа управления подами, контейнерами и образами. Прежде чем использовать Podman в IDE, нужно настроить подключение.

Тестирование

  • Одно из важнейших обновлений в Selenium UI Testing плагине – это возможность не только создавать новые Page Object классы, но и редактировать существующие с помощью продвинутого визуального редактора со встроенным браузером.
  • Для тех кто предпочитает управлять тестами, чеклистами и даже тест ранами прямо в проекте при помощи специальных Markdown файлов (Local TMS), теперь появилась возможность составлять иерархию тест-ранов. При этом каждый тест-ран будет агрегировать в себе информацию со всех дочерних тест-ранов.
  • Также мы добавили поддержку форматирование в окне предпросмотра. Описания тест-кейсов и шагов всегда писались на Markdown, но теперь форматирование можно просматривать и менять прямо в окне предпросмотра TMS.

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

  • Добавлена поддержка Android Studio Arctic Fox 2020.3.1.
  • Появилась поддержка Groovy 4, включая полнофункциональный анализ кода, инспекции и intention-действия. Поддерживаются также дополнительные возможности, например switch-выражения и sealed-типы.

Спасибо, что помогаете нам улучшать IntelliJ IDEA своим участием в программе раннего доступа и отзывами о новой функциональности. Делитесь впечатлениями о версии 2021.3 в комментариях к посту и сообщайте о любых ошибках в баг-трекере.

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

Ваша команда IntelliJ IDEA
The Drive to Develop

Оригинал статьи опубликован на Habr.com.

Discover more