Что нового в IntelliJ IDEA 2022.2

В IntelliJ IDEA 2022.2 функциональность удаленной разработки стала более продуманной и стабильной. В этой версии мы перешли на JetBrains Runtime 17, благодаря чему повысилась производительность и улучшись многие другие аспекты работы IDE. В IntelliJ IDEA Ultimate появилась поддержка Spring 6 и Spring Boot 3, а также добавлены обновления для других фреймворков. Вас ждет много других интересных нововведений, о которых мы рассказываем ниже.

Главное

Удаленная разработка

Новые возможности удаленной разработки
Бета-версия
Ultimate

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

Переход с JBR 11 на JBR 17

Переход с JBR 11 на JBR 17

As of v2022.2, all IntelliJ IDEA updates come with JetBrains Runtime 17 (JBR 17), which brings a significant IDE performance improvement, better security, enhanced rendering performance on macOS thanks to the Metal API, and more. Подробнее о переходе на JBR17 читайте в нашем блоге.

Поддержка Spring 6 и Spring Boot 3
Ultimate

IntelliJ IDEA 2022.2 полностью поддерживает Spring 6 и Spring Boot 3, в том числе новые классы @AutoConfiguration и @ConfigurationProperties с новым синтаксисом привязки конструкторов без явного @ConstructorBinding. Не забудьте обновить IDE, если хотите попробовать Spring 6 или перевести свои проекты на новую версию фреймворка.

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

Run Current File

Run Current File

Чтобы быстро запустить и отладить файл, не создавая отдельную конфигурацию запуска, используйте новое действие Run Current File в виджете Run/Debug. С его помощью вы можете запустить и отладить файл, открытый в данный момент — IDE автоматически выберет наиболее подходящий тип конфигурации запуска.

Изменения размера шрифта с клавиатуры

Мы добавили сочетание клавиш, чтобы вы могли быстро изменить размер шрифта во всех окнах редактора. Для увеличения нажмите Alt+Shift+точка, а для уменьшения — Alt+Shift+запятая. Новый индикатор показывает текущий размер шрифта и позволяет вернуться к значению по умолчанию.

Объединение окон на macOS

Объединение окон на macOS

На macOS теперь можно объединить все открытые окна проекта: они отобразятся в виде вкладок в одном окне. Для этого выберите действие Merge All Project Windows в меню Window.

Улучшенные настройки подсветки проблемного кода

Теперь можно настроить способ отображения результатов инспекций, не меняя степень их серьезности. В меню Highlighting in editor вы увидите доступные стили подсветки и сможете подобрать подходящий вариант для любой инспекции.

Индикатор процесса клонирования репозитория на начальном экране

Индикатор процесса клонирования репозитория на начальном экране

Индикатор извлечения копии проекта из репозитория теперь отображается на начальном экране IDE прямо в списке проектов.

Добавление описания к мнемоническим закладкам

Добавление описания к мнемоническим закладкам

В диалоге Add Mnemonic Bookmark теперь есть поле Description, в котором можно ввести описание закладки.

Редактор

Отключение автоматического закрытия блочных комментариев

Отключение автоматического закрытия блочных комментариев

Теперь можно отключить автоматическое закрытие блочного комментария при нажатии Enter. Для этого зайдите в меню Settings / Preferences | Editor | Smart Keys и снимите галочку напротив опции Close block comment в разделе Enter.

Быстрый доступ к настройкам автодополнения

Быстрый доступ к настройкам автодополнения

Из всплывающего окна автодополнения теперь можно перейти в соответствующие настройки: для этого нажмите на три вертикальные точки.

Изменение сопоставления типов файлов в редакторе

Изменение сопоставления типов файлов в редакторе

Если вы по ошибке выставили ассоциацию типа файла с простым текстом, IntelliJ IDEA предложит изменить режим открытия файла прямо в редакторе — не нужно переходить в Preferences / Settings и настраивать тип файла вручную.

Создание оглавления в Markdown-файлах

Создание оглавления в Markdown-файлах

Теперь можно легко создать оглавление в Markdown-файле на основе заголовков в документе. Новое действие находится в меню Insert и Generate, которые можно вызвать с помощью Alt+Insert или правым кликом. IDE добавит оглавление туда, где стоит курсор, и заключит его в теги <!-- TOC -->. В дальнейшем вы сможете его изменить, вызвав то же меню.

Java

Улучшенные инспекции и автодополнение

Мы внесли ряд изменений в Java-инспекции, чтобы вам было легче находить потенциальные ошибки и упрощать код. Например, инспекция Standard ‘Charset’ object can be used теперь распознает .name() и .toString(). IDE предупредит о том, что переменные в образце скрывают поля, и обнаружит бессмысленные вызовы Objects.requireNonNullElse. Некоторые Java-инспекции, связанные с JUnit, были преобразованы в JVM-инспекции, поэтому теперь они доступны и в Kotlin. Кроме того, автодополнение теперь предлагает подставить литералы .class там, где нужно.

Подробнее об улучшениях для Java читайте в нашем блоге.

Kotlin

Поддержка возможностей Kotlin 1.7.0

Поддержка возможностей Kotlin 1.7.0

Мы добавили поддержку функций, появившихся в свежей версии Kotlin 1.7.0. Теперь IDE корректно отображает типы, точно не допускающие значение null и проводит полезную проверку на наличие требований opt-in.

Поддержка анализа потоков данных в Kotlin-отладчике

Поддержка анализа потоков данных в Kotlin-отладчике

Мы интегрировали Kotlin-отладчик с функцией анализа потоков данных, так что теперь в нем есть подсказки о том, какие условия истинны и какие ветки будут выполнены. Раньше эта интеграция была доступна только для Java, а теперь поддерживается и в Kotlin.

Нативный инструмент сборки IntelliJ IDEA использует версию Kotlin-компилятора, указанную в проекте

Встроенный Kotlin-компилятор больше не используется в нативном инструменте сборки IntelliJ IDEA. Теперь и локальные, и CI-сборки запускаются с версией компилятора Kotlin, указанной в настройках проекта. Это устраняет расхождения между локальными и CI-сборками, которые раньше возникали из-за несоответствия версии встроенного компилятора и версии, определенной в файле сборки проекта. Подробнее

Повышение производительности

Наши усилия по оптимизации индексов положительно повлияли на скорость и производительность IDE при подсветке синтаксиса, автодополнении и использовании действия Find Usages.

Scala

Улучшенная поддержка Scala 3

Улучшенная поддержка Scala 3

Начиная с версии 2022.2, IntelliJ IDEA распознает типы match в файлах .tasty, правильно их обрабатывает, разрешает переменные типа, использует их в качестве аргументов типа, поддерживает инспекции и показывает типы как текст. On top of that, we’ve added support for Option-less extractors , type lambdas and polymorphic function types , type-level compiler intrinsics , and ? as a wildcard together with _ in Scala 2.13.9 and 2.12.16. Кроме того, теперь правильно расставляются отступы в скопированном коде.

Новые инспекции для Scala

Новые инспекции для Scala

IntelliJ IDEA 2022.2 предупреждает об использовании ключевого слова return внутри анонимной функции для выхода из функции без выполнения всего кода внутри нее. Обычно это неумышленное использование, которое может привести к негерметичной реализации и снижению производительности. IntelliJ IDEA теперь показывает предупреждение, если параметр private или class затеняет переменную суперкласса. Кроме того, при попытке переопределить переменную запрещенным компилятором способом IDE выдает ошибку. Настроить отображение новых предупреждений можно при наличии соответствующих параметров компилятора (-Xlint:nonlocal-return и -Xlint:private-shadow).

Перенос элементов списка, разделенных запятыми, на отдельные строки

Перенос элементов списка, разделенных запятыми, на отдельные строки

Если строка кода со списком аргументов или элементов коллекции слишком длинная, выберите действие Put arguments on separate lines во всплывающем меню, и список будет разбит на несколько строк. Есть и обратное действие: если список в несколько строк достаточно короткий, можно преобразовать его в одну строку с помощью действия Put arguments on one line.

Подсветка с использованием компилятора для Scala

Подсветка с использованием компилятора для Scala

Мы скорректировали подсветку с использованием компилятора для более оптимального использования ресурсов. IDE теперь учитывает настройки подсветки, заданные пользователем. Компиляция запускается реже и использует меньше фоновых потоков. Область компиляции уменьшена до соответствующих областей модуля и исходного кода.

Safe Delete для параметров типа

Безопасное удаление параметров типа

Действие Safe Delete удаляет элемент из определения и всех его вызовов. Теперь оно работает и для параметров типа.

Groovy

Поддержка GINQ

Поддержка GINQ

We’ve added support for Groovy-Integrated Queries (GINQ). IDE предоставляет подсветку синтаксиса, автодополнение и инспекции.

Безопасность

Импорт доверенных SSL-сертификатов

IntelliJ IDEA теперь умеет автоматически импортировать SSL-сертификаты из доверенных системных хранилищ. IDE сама обнаружит пользовательские сертификаты, используемые в вашей корпоративной среде разработки. Ничего дополнительно делать не нужно: все работает автоматически.

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

Графики CPU и Heap Memory при профилировании

Графики CPU и Heap Memory при профилировании
Ultimate

Мы обновили профилировщик IntelliJ Profiler, упростив сбор снэпшотов. Теперь, когда вы начинаете профилирование, графики CPU и Heap Memory отображаются рядом с консолью. Так вы можете следить за производительностью вашего приложения и собирать множество снэпшотов приложения в течение заданного периода.

Поддержка inline-функций Kotlin

Поддержка inline-функций Kotlin
Ultimate

Inline-функции Kotlin теперь отображаются вместе с другими функциями во флейм-графе, дереве вызовов и списке методов: вы будете видеть их процессорное время и при необходимости сможете его оптимизировать. Сейчас эта функция доступна только на Linux и macOS в режиме Start profiling. Мы работаем над тем, чтобы она появилась на Windows, и скоро добавим ее в режим Attach.

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

Поддержка новых декларативных HTTP-клиентов в Spring 6
Ultimate

Spring Framework 6 позволяет определить HTTP-клиент как Java-интерфейс с аннотированными методами. IntelliJ IDEA 2022.2 предоставляет автодополнение URL-адресов, навигацию и интеграцию с HTTP-клиентом для таких интерфейсов.

Автодополнение URL-адресов и навигация для маршрутов Spring Cloud Gateway
Ultimate

В IntelliJ IDEA Ultimate теперь работает автодополнение, Search Everywhere и подсказки Find Usages для URL-адресов Spring Cloud Gateway. Вы можете легко сгенерировать HTTP-запрос или найти все маршруты шлюза с помощью окна Endpoints.

Улучшенный анализ кода для фреймворков JVM-микросервисов
Ultimate

IntelliJ IDEA 2022.2 автоматически подсвечивает тела JSON/XML в тестах с популярными Java API, такими как Spring WebTestClient, RestAssured, WireMock и MockServer. В результате эти фрагменты данных удобнее читать и легче редактировать. Вы также можете пользоваться автодополнением URL-адресов и навигацией к объявлениям.

Экспериментальный отладчик нативных образов GraalVM для Java
Ultimate

IntelliJ IDEA 2022.2 может помочь вам в отладке исполняемых файлов нативных образов GraalVM. Вы можете подключить отладчик к любому исполняемому файлу на базе GraalVM или запустить ваше приложение с подключенным отладчиком. Для проектов Maven/Gradle будет автоматически создана соответствующая конфигурация запуска. Эта интеграция является экспериментальной и требует установки dev-сборки GraalVM и этого плагина.

Улучшенная навигация между Protobuf и исходниками Java

Улучшенная навигация между Protobuf и исходниками Java
Ultimate

Теперь вы можете легко переходить к коду, сгенерированному из файлов .proto и обратно. Убедитесь, что у вас включены плагины gRPC и Protocol Buffers.

Улучшенный анализ кода для Spring Shell

Улучшенный анализ кода для Spring Shell
Ultimate

IntelliJ IDEA 2022.2 распознает CLI-команды, объявленные с использованием библиотеки Spring Shell, и проверяет их корректность.

Улучшенная поддержка конечных точек JAX-RS
Ultimate

IntelliJ IDEA теперь корректно обрабатывает распространенные URL-шаблоны веб-служб JAX-RS, объявленные как @ApplicationPath, и предоставляет для URL-адресов автодополнение, навигацию и поиск использований.

Поддержка конечных точек WebSocket в HTTP-клиенте
Ultimate

IntelliJ IDEA Ultimate 2022.2 поддерживает конечные точки WebSocket. Вы можете выполнять запросы, а также отправлять и получать сообщения.

Поддержка конечных точек GraphQL в HTTP-клиенте

Поддержка конечных точек GraphQL в HTTP-клиенте
Ultimate

Теперь в IntelliJ IDEA Ultimate можно отправлять запросы по протоколам HTTP и WebSocket — возможность доступна из коробки. Для http:// и https:// используются простые HTTP-запросы, тогда как ws:// и wss:// отправляются через WebSocket.

Улучшения в работе с HTTP-клиентом
Ultimate

Мы подготовили для вас несколько улучшений в HTTP-клиенте. Во-первых, выбрать среду запуска теперь можно с помощью специальной иконки на полях. Чтобы включить эту возможность, выберите опцию Select Environment Before Run в комбинированном списке Run with. Во-вторых, в представление Response мы добавили индикатор выполнения, который позволяет следить за процессом загрузки.

Активные ссылки в строковых значениях JSON, YAML и .properties

Активные ссылки в строковых значениях JSON, YAML и .properties
Ultimate

При работе с файлами JSON, YAML и .properties теперь можно переходить по ссылкам внутри строковых значений, начинающихся с http:// и https://. Вы можете открыть ссылку в браузере или сгенерировать запрос в HTTP-клиенте через меню Context Actions (Alt + Enter).

Улучшенная поддержка аннотаций Bean Validation

Улучшенная поддержка аннотаций Bean Validation
Ultimate

IntelliJ IDEA 2022.2 предоставляет ссылки и поддерживает сворачивание атрибутов сообщений в аннотациях Bean Validation на Java и Kotlin. Вы можете пользоваться автодополнением ключей сообщений и переходить к их объявлениям в файлах ValidationMessages.properties.

Обновленный плагин AWS CloudFormation

Обновленный плагин AWS CloudFormation
Ultimate

Мы переработали плагин AWS CloudFormation: обновили схемы метаданных и улучшили автодополнение свойств. Новую версию плагина можно скачать с JetBrains Marketplace.

Поддержка Jakarta Persistence 3.1
Ultimate

IntelliJ IDEA now supports all of the features in Jakarta Persistence 3.1, including the new JPQL syntax, functions, and types, and it provides language highlighting and code completion for them.

Docker

Автодополнение Docker-образов в тестах с Testcontainers

Автодополнение Docker-образов в тестах с Testcontainers

IntelliJ IDEA 2022.2 introduces image completion for the Testcontainers API where you can find all available Docker images and their versions. Нажмите на ссылку, чтобы открыть в браузере соответствующий URL-адрес Docker Hub.

Загрузка локального Docker-образа в Minikube и другие соединения

Загрузка локального Docker-образа в Minikube и другие соединения

Вы можете копировать образы с одного демона Docker на другой с помощью нового действия Copy Docker Image, которое сохраняет образ в файл, а затем добавляет его в выбранный демон.

Автоматическое подключение к Docker при перезапуске IDE

Автоматическое подключение к Docker при перезапуске IDE

IntelliJ IDEA 2022.2 автоматически подключается к Docker при перезапуске IDE. Вы можете изменить это поведение в разделе Settings / Preferences | Advanced Settings | Docker.

Варианты подключения к разным Docker-демонам

IntelliJ IDEA 2022.2 интегрирована с Colima и Rancher, и у вас теперь есть больше возможностей для подключения к демонам Docker.

Kubernetes

Интеграция Kubernetes с Telepresence

Интеграция Kubernetes с Telepresence
Ultimate

The Kubernetes plugin for IntelliJ IDEA 2022.2 provides integration with the Telepresence tool in order to intercept HTTP requests from services in the Kubernetes cluster and route them to your service running locally. Благодаря этому сервисы проще отлаживать, и вы можете запускать локально только необходимое подмножество сервисов.

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

Улучшенная структура веб-страницы в редакторе объектов страницы

Улучшенная структура веб-страницы в редакторе объектов страницы

Мы значительно улучшили отображение структуры веб-страницы. Благодаря подсветке текста, теперь хорошо видно самое главное: имя тега, ID и примененные CSS-классы.

Удобная навигация при помощи значков на полях

Удобная навигация при помощи значков на полях

Теперь можно быстро вернуться к элементу страницы, просто нажав на его значок в левом поле редактора.

Именование объекта страницы по URL

Именование объекта страницы по URL

Теперь при создании файла объекта страницы в мастере отображается поле URL (необязательное для заполнения). Если адрес включен, мастер предложит имя для файла объекта страницы на основе URL. Кроме того, вставленный URL автоматически загружается при открытии редактора объектов страницы.

Автоматическое перемещение курсора в конец блока кода

Автоматическое перемещение курсора в конец блока кода

При добавлении в код новых элементов страницы курсор теперь автоматически перемещается в конец добавляемого блока, чтобы вам было легко перемещаться по нему и продолжать редактирование.

Создание объекта страницы из контекстного меню

Создание объекта страницы из контекстного меню

Когда вы вводите новый класс объекта страницы без ссылок при работе над существующим и видите предупреждение о неразрешенном коде, просто перейдите в контекстное меню предупреждения и создайте новый объект страницы.

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

Импорт нескольких CSV-файлов

Импорт нескольких CSV-файлов
Ultimate

Мы улучшили процедуру импорта: теперь можно выбрать несколько CSV-файлов и импортировать их одновременно.

Новое окно Modify

Обновленный интерфейс окна Modify
Ultimate

Новый интерфейс окна Modify теперь используется по умолчанию. Начиная с версии 2022.2, все дочерние объекты таблицы можно добавлять и редактировать в этом окне. К предыдущему варианту интерфейса можно вернуться через контекстное меню.

Подробнее

Режимы разрешения Playground и Script

Режимы разрешения Playground и Script
Ultimate

Для работы с базами данных теперь есть два режима разрешения: Playground и Script. Первый предназначен для набора не связанных между собой запросов, а второй — для набора запросов с последовательной логикой, которые должны выполняться как единый скрипт.

Подробнее

Веб-разработка

Поддержка автономных компонентов Angular

Поддержка автономных компонентов Angular
Ultimate

Мы активно работаем над поддержкой Angular 14. Главное нововведение этого релиза — поддержка автономных компонентов Angular. IntelliJ IDEA теперь корректно распознает и обрабатывает компоненты, директивы и каналы с отметкой standalone: true.

Расширенная поддержка Vue 3

Расширенная поддержка Vue 3
Ultimate

В IntelliJ IDEA 2022.2 вас ждет несколько улучшений для Vue 3. Например, IDE распознает сужение типа в директивах v-if/else. Кроме того, мы улучшили поддержку Pinia — рекомендуемого командой Vue решения для управления состояниями, которое работает как глобальное хранилище. При использовании библиотеки доступно автодополнение, и вы можете переходить к свойствам состояния и действиям, определенным в хранилище.

Поддержка TypeScript 4.7

Поддержка TypeScript 4.7
Ultimate

IntelliJ IDEA 2022.2 включает в себя TypeScript 4.7 и поддерживает новые возможности языка, такие как moduleSuffixes и ESM в Node.js. IDE автоматически подставит расширение .js в оператор импорта, если в файле tsconfig.json для модуля установлено значение node16 или nodenext. Кроме того, IDE поддерживает поле typesVersions в файлах package.json.

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

  • Android-плагин, встроенный в IntelliJ IDEA, теперь предоставляет все возможности Android Studio Chipmunk, в том числе поддержку Android Gradle Plugin (AGP) 7.2.x.