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

IntelliJ IDEA 2021.3 предлагает поддержку удаленной разработки (в режиме бета-версии) и представляет новый способ диагностики и устранения проблем в работе IDE с помощью действия Repair IDE.... Кроме того, мы обновили отладчик и добавили инспекцию постоянных условий для Kotlin, а также внесли много других важных изменений. Читайте далее о полезных возможностях новой версии.

Главное

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

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

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

Создавать и настраивать удаленные среды разработки, управлять ими, переводить их в режим гибернации и приглашать коллег к совместной работе можно с помощью Space — универсальной платформы, охватывающей весь пайплайн разработки.

Подробнее об этом читайте в нашем блоге.

Диагностика и устранение проблем в работе IDE

Диагностика и устранение проблем в работе IDE

В IntelliJ IDEA 2021.3 появился новый, более быстрый способ диагностики и устранения проблем, которые мешают работе IDE. Если возникли проблемы, вызовите новое действие Repair IDE... через меню File и выполните предложенную последовательность шагов. Таким образом можно исправить наиболее распространенные неполадки.

Инспекция постоянных условий для Kotlin

Инспекция Constant conditions для Kotlin

Мы добавили инспекцию Constant conditions, которая позволяет IntelliJ IDEA сообщать о нетривиальных условиях и значениях, которые должны всегда являться истинными, ложными или нулевыми. Она работает так же, как аналогичная инспекция для Java, и поддерживает основную часть тех же проверок. Перейти к новой инспекции можно в Preferences/ Settings | Editor | Inspections | Kotlin | Probable bugs.

Обновления отладчика для Kotlin

Действие Smart Step Into

При отладке выражения, содержащего цепочку вызовов методов и лямбд, действие Step Into работает по умолчанию как Smart Step Into. Оно подсвечивает методы и лямбды, в которые можно зайти. Чтобы воспользоваться действием, нажмите кнопку Step Into на верхней панели окна Debug или клавишу F7. IDE подсветит места для захода в код, и можно будет выбрать нужную строку, щелкнув по ней.

Inline-функции в стеке фреймов

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

Редактор

Изменение размера шрифта во всех вкладках

По вашим просьбам мы сделали так, чтобы можно было изменить размер шрифта во всех вкладках одновременно с помощью сочетания ⌘+колесико мыши в macOS и Ctrl+колесико мыши в Windows и Linux. Чтобы включить эту функцию, в меню Preferences / Settings | Editor | General поставьте флажок Change font size with Command / Ctrl + Mouse Wheel in, а затем выберите настройку All editors. Если выбрать вариант Active editor, размер шрифта будет меняться только в том файле, в котором вы работаете в этот момент.

Улучшенный предпросмотр результатов intention-действий

В IntelliJ IDEA есть полезная функция, позволяющая посмотреть результаты intention-действий и быстрых исправлений до их применения к коду. Она доступна в меню Intention actions. Чтобы включить предпросмотр, нажмите F1 в macOS или Ctrl+Q в Windows и Linux.

Предварительный просмотр intention-действий появился в версии 2020.1, и с тех пор мы работаем над его улучшением. В IntelliJ IDEA 2021.3 расширен список поддерживаемых intention-действий и быстрых исправлений для Kotlin, а вместо сообщения «Preview isn't available» (Предварительный просмотр недоступен) появились более информативные HTML-описания неподдерживаемых intention-действий. Более того, для действий, изменяющих несколько файлов, предварительный просмотр частично показывает возможные результаты. Они дают общее представление о том, что изменится в результате применения действия.

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

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

В IntelliJ IDEA 2021.3 очень удобно создавать таблицы. Просто откройте контекстное меню и нажмите Insert | Table. Только и всего. Чтобы выбрать нужный размер, наведите мышку или воспользуйтесь клавиатурой.

Ширина ячеек в таблице будет меняться по мере ввода кода. Изменить содержимое таблицы можно с помощью плавающих панелей инструментов.

Для перехода к новой ячейке нажмите Tab, а чтобы добавить ряд — Shift+Enter.

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

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

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

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

Новое окно Bookmarks

Новое окно Bookmarks заменяет прежнее окно Favorites похожего назначения. Теперь любые важные файлы, папки и классы можно отметить, просто нажав F3 в macOS или F11 в Windows и Linux.

При добавлении закладки IntelliJ IDEA по умолчанию помещает ее в узел в окне Bookmarks, имеющий то же название, что и текущий проект. Каждая новая закладка занимает первую строчку списка в этом узле. Закладки можно отсортировать по типу с помощью параметра Sort Groups and Bookmarks в настройках окна. Кроме того, можно создать новые узлы и перетащить туда закладки.

Разделение окна Run

Разделение окна Run

В версии 2021.3 мы добавили возможность разделять окно Run, используя вкладки. Благодаря этому можно запускать одновременно несколько конфигураций и видеть все результаты.

Чтобы разделить окно Run, перетащите нужную вкладку в выделенную область. Чтобы объединить вкладки, кликните правой кнопкой мыши по верхней панели и выберите Unsplit в контекстном меню.

Поиск действий в Search Everywhere с использованием машинного обучения

Поиск действий в Search Everywhere с использованием машинного обучения

Теперь при поиске действий через Search Everywhere используется машинное обучение. Новый алгоритм поиска учитывает:

  • историю применения действий конкретным пользователем;
  • частоту использования действия всеми пользователями;
  • длину поискового запроса, имя действия и т. п.

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

Улучшенная функция Find Usages

Улучшенная функция Find Usages

Если вы ищете использования реализации метода с помощью сочетаний клавиш ⌥F7 в macOS или Alt+F7 в Windows и Linux, IDE больше не спрашивает, нужно ли искать использования базового метода. Вместо этого IntelliJ IDEA по умолчанию использует методы более высокого уровня в качестве объекта поиска. Чтобы изменить такое поведение, снимите флажок Search for base method usages в настройках окна Find Usages (открывается при нажатии на значок шестеренки).

Переработанный диалог Show Usages

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

Еще одно небольшое, но удобное изменение: теперь можно отрегулировать ширину окна. IDE запомнит эту настройку и использует ее при следующем вызове окна.

Переработанный узел Empty Project и новый узел Multi-Module Project

В версии 2021.3 мы изменили узлы мастера создания проектов IntelliJ IDEA.

Теперь, чтобы создать простой проект для работы с отдельными файлами разных типов и добавить в него классы Java и Kotlin, можно выбрать узел Empty Project. IDE автоматически сконфигурирует проект, чтобы его можно было скомпилировать при наличии любых классов Java или Kotlin.

Новый узел Multi-Module Project позволяет с нуля создать проект со сложной структурой. После создания проекта открывается диалог Project Structure, в котором можно добавить разные модули.

Обновления режима специальных возможностей

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

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

Java

Инспекция отслеживания небезопасных строк

Новая версия предупреждает пользователя о возможных рисках, например, о вставке SQL-кода и слабых местах XSS, утечке конфиденциальных данных и небезопасной десериализации. Кроме того, это предотвращает передачу небезопасных данных безопасным методам. За дополнительные предупреждения отвечает новая инспекция Non-safe string is passed to a safe method.

Чтобы она работала, нужно использовать для строк аннотации @Untainted («безопасная») или @Tainted («небезопасная»). Эти аннотации действительны, если добавить зависимость org.checkerframework.​checker.​tainting.​qual dependency.

Другие инспекции для Java

Две новые инспекции помогут упростить код. Первая предлагает заменить 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. При его вызове (⌥⌘P в macOS и Ctrl+Alt+P в Windows и Linux) IDE спросит, где именно нужно заменить найденные вхождения. Когда вы выберете нужное, появится значок шестеренки. При нажатии на него можно будет настроить и другие параметры рефакторинга.

Настраиваемый classpath в Run/Debug Configurations

Настраиваемый classpath в Run/Debug Configurations

Иногда бывает нужно определить пользовательские classpath в диалоге Run/Debug Configurations для отдельных конфигураций. Теперь это можно сделать в меню Modify options | Modify classpath.

Kotlin

Рефакторинг Extract constant

Рефакторинг Extract constant

Мы добавили новый рефакторинг, который позволяет извлекать константы в Kotlin. Чтобы использовать его, поместите курсор в строку и нажмите ⌥⌘C в macOS или Ctrl+Alt+C в Windows и Linux.

Улучшенная инспекция Possibly blocking call in non-blocking context

Улучшенная инспекция Possibly blocking call in non-blocking context

Инспекция Possibly blocking call in non-blocking context сообщает о том, что корутины используются в неверном контексте. В новой версии инспекция работает не только как предупреждение, но и предлагает автоматическое исправление.

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

Встроенные подсказки для диапазонов

Встроенные подсказки для диапазонов

Иногда сложно разобраться в разных способах объявления диапазонов, поддерживаемых Kotlin. Чтобы упростить написание кода, мы добавили встроенные подсказки, которые с помощью простых математических знаков объясняют, что значат слова или символы в диапазонах. Если эта функция вам не нужна, ее легко отключить, щелкнув правой кнопкой по подсказке и выбрав Disable ‘Ranges’ hints type.

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

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

Мы переработали интерфейс мастера создания проектов, добавив подсказки для всех полей, чтобы можно было сразу понять, какую информацию следует ввести. Раздел шаблонов также обновлен: мы убрали несколько редко используемых шаблонов и добавили новый для создания приложений Compose Web.

И наконец, настраивать проект стало гораздо проще. Достаточно заполнить только основные поля.

Scala

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

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

Основное внимание при подготовке этого релиза мы уделили поддержке Scala 3. Мы добавили подсветку, навигацию и автодополнение для маркеров end. Появилось автодополнение для ключевых слов given, using и export, для мягких ключевых слов и «тихого» синтаксиса. Инструмент чтения TASTy теперь может обрабатывать package object, а также вариантность и связи в более высоких типах. Подсветка ошибок лексеров и парсеров теперь работает гораздо быстрее. Есть новые инспекции, совместимые со Scala 3. Мы улучшили разрешение импортов given и внедрили поддержку членов final верхнего уровня, а также абстрактных lazy val.

Открытие перекрестно скомпилированного проекта Scala 3 / Scala 2 как Scala 2

Открытие перекрестно скомпилированного проекта Scala 3 / Scala 2 как Scala 2

Многие проекты, компилируемые одновременно для Scala 2 и Scala 3, создаются по модели проектов Scala 3 с кросс-компиляцией для Scala 2, хотя с технической точки зрения это проекты Scala 2.

Если открывать такие проекты как Scala 2, IDE будет использовать правильную версию Scala и работать надежнее.

Анализ потоков данных для Scala

Анализ потоков данных для Scala

Теперь плагин Scala поддерживает анализ потоков данных, что упрощает поиск ошибок в коде. Подробнее об этом читайте в нашем блоге.

Автодополнение для параметров компилятора Scala

Автодополнение для параметров компилятора Scala

У компилятора Scala много разных параметров, и мало кто помнит их наизусть. К тому же они зависят от используемой версии Scala.

Мы добавили функцию автодополнения для применимых параметров и быстрый просмотр документации по каждому из них.

Встроенные подсказки для диапазонов

Встроенные подсказки для диапазонов

Вам приходилось когда-нибудь гадать, является ли диапазон 1 to 3 инклюзивным или эксклюзивным? А диапазон 1 until 3? Или Range(1, 3)? Теперь это в прошлом, и ответ очевиден.

JavaScript

Новая инспекция для обновления зависимостей

Новая инспекция для обновления зависимостей
Ultimate

IntelliJ IDEA 2021.3 позволяет обновить npm-пакеты до новой версии прямо из редактора! Откройте файл package.json, установите курсор на версию пакета, который нужно обновить, нажмите ⌥⏎ в macOS или Alt+Enter в Windows или Linux и выберите Update ‘имя пакета’ to the latest version. Кроме того, при наведении курсора на версию пакета отобразится быстрое исправление.

Улучшенное автодополнение для HTML

Улучшенное автодополнение для HTML
Ultimate

Мы улучшили работу автодополнения в HTML. Теперь при вводе имени тега или аббревиатуры и при вызове автодополнения IntelliJ IDEA показывает подходящие варианты сразу же. Раньше нужно было сначала ввести символ <. Кроме того, в новой версии лучше работает функция автодополнения для мнемоников.

SSH

Поддержка прокси для подключений по SSH

Эта долгожданная функция позволяет указать в меню Preferences/Settings | Tools | SSH Configurations указать прокси-сервер HTTP или SOCKS для конфигурации SSH. В новом разделе HTTP/SOCKS можно выбрать тип прокси, ввести имя хоста и порт, а также при необходимости включить аутентификацию по имени пользователя и паролю. Кроме того, можно синхронизировать настройки SSH-прокси с общими настройками IDE. Для этого нужно поставить флажок Use global IDE proxy settings.

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

Сравнение снэпшотов .jfr

Сравнение снэпшотов .jfr
Ultimate

В новой версии стало удобно проверять результаты сделанных изменений, чтобы понять, дали ли они ожидаемый эффект или привели к ухудшению. Для этого нужно открыть два снэпшота в окне Profiler и сравнить их. На более позднем снэпшоте нажмите значок diff и выберите снэпшот, используемый в качестве точки отсчета. IDE отобразит результат в виде флейм-графа, дерева вызовов или списка методов.

Поддержка Async Profiler 2.0 в Windows
Ultimate

В версии 2021.2 мы добавили поддержку Async Profiler 2.0 в IntelliJ IDEA для macOS и Linux. Теперь поддержка Async Profiler 2.0 доступна и в Windows. Она делает более удобным профилирование, а также улучшает представление нативных функций в снэпшотах.

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

Обновленные настройки Maven

Обновленные настройки Maven

Мы постарались улучшить конфигурации Run/Debug: в этот раз были заметно обновлены настройки Maven. Все основные параметры теперь собраны в одном окне, а к дополнительным настройкам можно перейти по ссылке Modify options.

Поддержка .mvn/maven.config

Поддержка .mvn/maven.config

Чтобы сохранить настройки Maven для каждого проекта в файле .mvn/maven.config, перейдите в Preferences/ Settings | Build, Execution, Deployment | Maven и выберите Use settings from .mvn/maven.config в нижней части экрана. Не забудьте, что настройки, сохраненные в этом файле, имеют приоритет перед стандартными настройками интерфейса Maven.

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

Функция Checkout and Rebase onto Current для удаленных веток

Функция Checkout and Rebase onto Current для удаленных веток

Чтобы получить ветку из репозитория и перебазировать ее поверх текущей ветки, используйте функцию Checkout and Rebase onto Current. Раньше она была доступна только для локальных веток, но в IntelliJ IDEA 2021.3 работает и для удаленных веток.

Реорганизация настроек системы контроля версий

Мы улучшили структуру настроек в меню Preferences/Settings | Version Control и упростили доступ к некоторым важным конфигурациям. Теперь узел Version Control стал исходной точкой навигации: там есть ссылки на все доступные настройки. Перейдя оттуда к узлу Git, вы увидите, что все настройки разбиты на разделы, соответствующие основным процессам: Commit, Push и Update. Параметры, включенные в эти разделы, размещены более логичным образом. Кроме того, добавлен отдельный узел Directory mappings, а фоновые операции включены по умолчанию. Узел Background был удален.

Новое окно Changes

Новое окно Changes

Начиная с версии IntelliJ IDEA 2021.3, различия между коммитами будут отображаться в отдельном окне Changes. Оно находится слева от редактора.

Новое действие Push All up to Here

Новое действие Push All up to Here

Новое действие позволяет передавать на сервер только те коммиты, работа над которыми завершена (остальные будут по-прежнему храниться локально).

Теперь вы можете отправить в удаленный репозиторий все коммиты вплоть до коммита, выбранного во вкладке Log окна Git. Для этого выберите коммит, на котором вы хотите остановиться, кликните по нему правой кнопкой мыши для вызова контекстного меню и выберите Push All up to Here.

Выравнивание строк в сравнении

Выравнивание строк в сравнении

Мы добавили в настройки экрана Diff (под значком шестеренки) новый параметр Align Changes Highlighting. Эта настройка упрощает восприятие информации на экране Diff, особенно при сложных изменениях: строки без изменений отображаются друг напротив друга. В результате вы четко видите, какой код был добавлен или удален.

Терминал

Поддержка ConPTY для Windows

Поддержка ConPTY для Windows

In v2021.3, we’ve introduced support for the new ConPTY API on Windows. It addresses several issues users were having with the old implementation, which was based on winpty, and adds support for 24-bit colors in the terminal.

Поддержка опережающего ввода

Поддержка опережающего ввода

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

Отладчик

Вычисление выражений в отладчике

Вычисление выражений в отладчике

В новой версии найти функцию Evaluate стало гораздо проще. Раньше, когда нужно было вычислить выражение, многие использовали отслеживание переменных: сначала создавали watches, потом удаляли, вместо того чтобы использовать диалог Evaluate. Теперь поле Evaluate доступно прямо в окне Debug, и это самый удобный способ вычисления выражений.

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

gRPC-запросы через HTTP-клиент
Ultimate

HTTP-клиент IntelliJ IDEA предлагает базовую поддержку gRPC-запросов. Если набрать ключевое слово GRPC, чтобы создать запрос, HTTP-клиент предложит варианты автодополнения. IDE даст подсказку обо всех известных gRPC-сервисах, унарных методах и методах потоковой передачи данных конкретного сервера, а главное — обо всех полях тела запроса.

Еще одна новая функция позволяет создавать gRPC-запрос в HTTP-клиенте. Для этого просто щелкните по иконкам на полях редактора файлов .proto.

Предпросмотр бинарного контента в ответах HTTP-клиента

Предпросмотр бинарного контента в ответах HTTP-клиента
Ultimate

HTTP-клиент может находить изображения в ответах и обеспечивает их предварительный просмотр в консоли ответа.

Поддержка текстовых потоков и потоков JSON в HTTP-клиенте
Ultimate

При тестировании приложений, выполняющих потоковую передачу данных в IntelliJ IDEA, больше не нужно ждать окончания потока: HTTP-клиент отображает результаты в реальном времени. Это возможно благодаря поддержке новых типов контента: text/event-stream, application/stream+JSON и application/x-ndjson. Кроме того, IDE уведомит вас об окончании потока.

Перенаправление вывода HTTP-запроса в заданный файл или директорию
Ultimate

В HTTP-клиенте можно настроить перенаправление вывода в заданный файл или директорию. Для принудительного и мягкого перенаправления используются два оператора:

  • оператор >> всегда создает новый файл, добавляя к его имени суффикс -n, если такое имя уже существует;
  • оператор >>! перезаписывает файл, если он уже существует.

Поддержка идентификаторов HTTP-запросов
Ultimate

Идентификаторы запросов можно добавлять либо в виде комментариев с использованием @name, либо в виде текста в первом разделителе (###). IDE распознает эти идентификаторы и позволяет использовать их для вызова запросов из окна Services, а также из диалогов Run Configuration, Run Anything и Search Everywhere.

Поддержка языка шаблонов Qute

Поддержка языка шаблонов Qute
Ultimate

Новая версия в числе прочих языков шаблонов поддерживает Qute. Благодаря этому IntelliJ IDEA обеспечивает подсветку и автодополнение кода, а также другие полезные возможности для разработки шаблонов для проектов Quarkus.

Интерпретация и автодополнение ссылок из вспомогательных файлов спецификации

Интерпретация и автодополнение ссылок из вспомогательных файлов спецификации
Ultimate

IntelliJ IDEA может находить спецификации OpenAPI, сохраненные в нескольких файлах и связанные с помощью $ref, и обеспечивает автодополнение.

Новые аннотации Blocking и Non-Blocking для реактивного кода

Новые аннотации Blocking и Non-Blocking для реактивного кода
Ultimate

We’ve made 2 additions to the JetBrains annotation collection. Если добавить в зависимости проекта org.jetbrains:annotations:23.0.0, можно добавлять к классам и методам аннотации @Blocking и @NonBlocking. В результате IDE сможет находить блокирующие вызовы в неблокирующем контексте, например, в корутинах Kotlin или в реактивном коде Project Reactor, RxJava и SmallRye Mutiny.

Кроме того, IDE автоматически обеспечивает поддержку соответствующих аннотаций из Micronaut и SmallRye Mutiny.

Улучшенное обнаружение блокирующего кода в Spring и Java EE

Улучшенное обнаружение блокирующего кода в Spring и Java EE
Ultimate

Новая версия IntelliJ IDEA обнаруживает больше случаев блокирующего кода в Spring и Java EE, включая интерфейсы JpaRepository и CrudRepository для Spring Data, шаблоны RestTemplate и JdbcTemplate, методы интерфейса Spring Feign, вызовы JPA EntityManager, а также любые методы и классы с аннотацией @Transactional.

Переработанные конфигурации Spring Boot

Переработанные конфигурации Spring Boot
Ultimate

Мы переработали диалог Run/Debug Configurations для проектов Spring Boot, и теперь он похож на обновленные ранее настройки для Java. В новом интерфейсе все основные настройки собраны в одном окне, а для доступа к другим параметрам нужно нажать Modify Options.

Улучшенная поддержка конфигурационных файлов Spring Boot

Улучшенная поддержка конфигурационных файлов Spring Boot
Ultimate

Теперь IntelliJ IDEA предлагает автодополнение кода в дополнительных файлах конфигурации (файлы properties или .yaml), если для ссылки на другой файл используется ключ spring.config.import. Кроме того, улучшена настройка сложных и пользовательских файлов конфигурации Spring Boot.

Ссылки на application.yaml

Ссылки на свойства в файлах application.yaml
Ultimate

Новая версия IDE поддерживает в проектах Spring Boot автодополнение кода и поиск использований ссылок на application.yaml в @Value, @Scheduled и Environment.getProperty().

Улучшенная поддержка использования @NamedQuery из репозиториев Spring Data

Улучшенная поддержка использования @NamedQuery из репозиториев Spring Data
Ultimate

Автодополнение методов запросов теперь работает и для запросов, объявленных как @NamedQuery в проектах Spring Data JPA. К определению @NamedQuery также можно перейти, щелкнув по иконке на полях редактора.

Поддержка Kotlin для Java EE CDI
Ultimate

Начиная с версии 2021.3, в файлах Kotlin можно использовать все инспекции CDI. Раньше они работали только в файлах Java. Кроме того, мы добавили на поля редактора файлов Kotlin иконки CDI. С их помощью удобно переходить к точкам внедрения и кандидатам на внедрение, производителям bean-компонентов, методам очищения объектов и событиям.

Улучшенные диаграммы классов UML
Ultimate

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

Если вам нужно проверить внешний вид диаграммы, откройте контекстное меню и нажмите Appearance.

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

Агрегирование в редакторе данных

Агрегирование в редакторе данных
Ultimate

Мы добавили возможность выбрать режим Aggregate для просмотра диапазона ячеек. Он поможет управлять данными, позволит не писать дополнительные запросы и даст вам новые возможности из арсенала Excel и Google Spreadsheets.

Выберите диапазон ячеек, к которому вы хотите применить агрегатные функции, кликните по нему правой кнопкой мыши и выберите Show Aggregate View.

Соотнесение источников данных DDL с реальными

Соотнесение источников данных DDL с реальными
Ultimate

В предыдущей версии появилась возможность создавать источники данных DDL на основе реальных. Мы продолжили развивать это направление, и теперь процесс поддерживается полностью. Вы можете:

  • создавать источники данных DDL на основе реальных (читайте про релиз 2021.2);
  • соотносить источники данных DDL с реальными;
  • сравнивать и синхронизировать их (в обе стороны).

Напоминаем, что источник данных DDL — это виртуальный источник данных, схема которого основана на наборе SQL-скриптов. Сохраняя эти скрипты в системе контроля версий, вы по сути сохраняете в ней схему вашей базы данных.

В настройках конфигурации данных появилась новая вкладка DDL mappings, на ней можно соотнести виртуальные источники данных с реальными.

Соотнесение источников данных DDL с реальными

Новое окно сравнения баз данных
Ultimate

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

Здесь же указывается, что обозначают различные цвета:

  • зеленый курсив — объект будет создан;
  • серый — объект будет удален;
  • синий — объект будет изменен.

Вкладка Script preview показывает результирующий скрипт. Вы можете запустить его в этом же окне либо открыть в новой консоли. Выполнив скрипт, вы преобразуете базу данных справа (целевую) в идентичную базе данных слева (исходной).

Кроме Script preview в нижней панели есть еще две вкладки: Object Properties Diff и DDL Diff. В них показана разница между исходными объектами и объектами целевых баз данных.

Уровни интроспекции

Уровни интроспекции
Oracle
Ultimate

Мы ввели три уровня интроспекции баз данных Oracle:

  • Уровень 1: имена всех поддерживаемых объектов и их сигнатуры (за исключением имен столбцов индексов и закрытых пакетных переменных)
  • Уровень 2: все метаданные, кроме исходного кода
  • Уровень 3: все метаданные

Интроспекция на первом уровне самая быстрая, на третьем — самая долгая. Чтобы изменить уровень интроспекции, воспользуйтесь контекстным меню.

Уровень интроспекции можно настроить для схемы или для целой базы данных. Схемы наследуют уровень интроспекции от своей базы данных, но вы также можете настроить его вручную.

Уровень интроспекции обозначается значком, похожим на пилюлю, рядом с иконкой источника данных. Чем больше наполнена пилюля, тем выше уровень интроспекции. Синий цвет означает, что уровень интроспекции был выбран вручную, а серый — что уровень был унаследован.

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

Редактор объектов страницы

Редактирование объектов страницы Selenium

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

Тестовые данные

Тестовые данные

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

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

Иерархия запуска тестов

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

Общие шаги

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

Kubernetes

Улучшенное форматирование шаблонов Helm

Улучшенное форматирование шаблонов Helm
Ultimate

Теперь при форматировании шаблонов Helm вы можете быть уверены в результате. Мы исправили все ошибки, поэтому форматирование в новой версии работает гораздо надежнее. Чтобы убедиться в этом, перейдите в меню Code | Reformat code or Reformat file или нажмите ⌥⌘L в macOS или Ctrl+Alt+L в Windows и Linux.

Подсветка блочных элементов в шаблонах Helm

Подсветка блочных элементов в шаблонах Helm
Ultimate

Мы добавили подсветку блочных элементов if, else, range, with и define в шаблонах Helm. Благодаря этому работать с кодом, содержащим вставки из шаблонов Go, стало гораздо проще.

Языковые вставки в ресурсах ConfigMap

Языковые вставки в ресурсах ConfigMap
Ultimate

Новая версия IntelliJ IDEA поддерживает автоматические вставки кода на разных языках в ресурсах ConfigMap для ключей с расширениями .yaml, .json, .properties и т. п. Вставленные фрагменты кода подсвечиваются зеленым, и в них работают функции анализа кода, в том числе автодополнение, подсветку ошибок и т. п.

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

Повторение последней команды
Ultimate

В новой версии можно повторно выполнить последнюю команду helm в окне Services: просто щелкните по новой иконке в правом верхнем углу. Например, если вы выполнили команду helm lint, то после ее завершения можно повторить выполнение, нажав на иконку.

Docker

Подключение к Docker из Minikube

Подключение к Docker из Minikube

Теперь подключиться к демону Docker из Minikube очень просто. В меню Preferences/ Settings | Build, Execution, Deployment выберите переключатель Minikube. В соседнем текстовом поле автоматически появятся найденные в Minikube окружения docker-daemon, к которым можно подключиться.

Более удобное подключение

Более удобное подключение

Теперь подключиться к Docker можно быстрее: достаточно дважды щелкнуть по нужному узлу или воспользоваться новым сочетанием клавиш — ⌘Enter в macOS или Ctrl+Enter в Windows и Linux. Действие Start container также вызывается этим сочетанием клавиш.

Новое действие Clean up

Новое действие Clean up

The new Clean up action works just like the prune terminal command. Если щелкнуть правой кнопкой по узлу Networks, Volumes, Containers или Images и выбрать Clean up, IDE удалит неиспользуемые объекты. Действие можно также применить к корневому узлу Docker, чтобы одним кликом удалить все ненужные объекты.

Поддержка Compose V2

IntelliJ IDEA supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

Чтобы включить эту функцию, перейдите в меню Preferences/Settings | Build, Execution, Deployment | Docker | Tools и поставьте флажок Use Compose V2.

Слои образа

Слои образа

Image layers allow you to track all the commands that are applied to images. Чтобы перейти к ним, выберите образ и откройте вкладку Layers. На этой вкладке, выбрав команду, можно щелкнуть по ссылке Analyze image for more information в правой части экрана и посмотреть подробную информацию об изменениях для каждого слоя.

Сохранение контейнера как образа

Сохранение контейнера как образа

Если вы хотите использовать предварительно настроенный контейнер позже, его можно сохранить как локальный образ, перенести на сервер и затем при необходимости использовать удаленно. Откройте окно Services, щелкните правой кнопкой на контейнере и выберите Image | Save as a new Image.

Обновления реестра

Мы внесли ряд изменений в реестр Docker. First off, the IDE now displays all available registries in separate nodes in the Services tool window. Раньше поддерживался только реестр Docker Hub. В версии 2021.3 добавлена поддержка GitLab (registry.gitlab.com) и JetBrains Space (<username>.registry.jetbrains.space).

Узлы окна Services можно развернуть, выбрать нужный образ и перетащить его в требуемое место. Если у вас несколько подключений к Docker, IDE спросит, куда именно переместить образ. Образы можно отправить в любой добавленный реестр. В диалоге Push IDE автоматически находит доступные пространства имен в выбранном реестре, после чего можно выбрать нужное из раскрывающегося списка.

И еще кое-что: для образов из реестров JetBrains Space, GitLab и Docker Hub работает автодополнение.

Поддержка Podman

IntelliJ IDEA now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, configure a connection yourself.

После установки и настройки Podman в операционной системе к нему можно подключиться в меню Preferences/Settings | Build, Execution, Deployment | Docker, выбрав переключатель TCP socket и заполнив необходимые поля.

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

Создание merge-реквестов и код-ревью из IDE

Теперь вы можете создавать merge-реквесты и код-ревью для проектов в Space. Это можно сделать двумя способами:

  • щелкните по значку + на верхней панели инструментов в окне Code Reviews и выберите нужное действие;
  • на вкладке Log в окне Git щелкните правой кнопкой по одному из коммитов в списке и выберите Space | Create merge request или Create code review.

Подробнее об этом — в нашем блоге или на гифках ниже.

Возможность пометить файл как просмотренный

Возможность пометить файл как просмотренный

Все отправленные на код-ревью файлы, которые еще не были проверены, отмечены синими точками, пока вы их не откроете. Так вы не пропустите критически важные изменения. Если вы хотите проверить изменения позже, воспользуйтесь опцией Mark as Not Viewed из контекстного меню. Эта функция работает также для пул-реквестов GitHub.

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

  • Новая версия IntelliJ IDEA поддерживает Android Studio Arctic Fox 2020.3.1.
  • Мы добавили поддержку Groovy 4, включая полнофункциональный анализ кода, инспекции и intention-действия. Additional features, such as switch expressions and sealed types, are supported as well.