В IntelliJ IDEA 2022.1 появился Dependency Analyzer, который упрощает управление зависимостями и разрешение конфликтов. Кроме того, мы обновили мастер создания проектов и предлагаем более удобный способ просмотра уведомлений в IDE. Рассказываем об этих и других важных изменениях.
Новый инструмент Dependency Analyzer позволяет получить подробную информацию обо всех зависимостях Maven и Gradle, используемых в проектах и подпроектах. Он помогает находить и разрешать конфликты зависимостей, отфильтровывать идентичные зависимости, смотреть, в каких библиотеках они содержатся, а также легко переходить к корректным конфигурациям сборки.
Мы переработали интерфейс мастера New Project, чтобы упростить создание проектов. Теперь можно быстро запустить пустой проект, а также использовать предварительные настройки для Java, Kotlin, Groovy и JavaScript. Если вы работаете над более сложными проектами, воспользуйтесь генераторами.
Вместо Event Log появилось новое окно Notifications. В нем удобно просматривать важные уведомления и полезные предложения в упорядоченном виде. Подробнее
В обновленном генераторе проектов Maven Archetype в мастере New Project появилась функция поиска по мере ввода при просмотре архетипов, а также возможность управления каталогом при создании модуля и ввода необходимых свойств по архетипам.
Мы улучшили встроенные подсказки Code Vision, которые сообщают полезную информацию о вашем коде прямо в редакторе. Теперь они показывают производные типы, использования, авторов кода и связанные проблемы. По умолчанию все метрики включены, отключить их можно в настройках Inlay Hints. Настройки также были обновлены и получили новый интерфейс.
Теперь в режиме Split вкладки можно сделать одинаковыми по ширине. Для этого в меню Settings | Advanced Settings | Editor Tabs выберите опцию Equalize proportions in nested splits.
В новой версии диаграммы можно экспортировать в форматах yEd (.graphml), JGraph (.drawio), Graphviz (.dot и .dot с позициями), Mermaid (.md), Plantuml, а также в файлы .uml IntelliJ IDEA. Благодаря этому их можно использовать в сторонних инструментах.
В диалоге Structural Search and Replace теперь отображается список всех шаблонов, чтобы между ними было проще переходить. Кроме того, появилась иконка Pin Dialog и изменилось положение флажков Injected code и Match case.
IntelliJ IDEA 2022.1 can now detect vulnerabilities in Maven and Gradle dependencies used in your projects by checking across the Checkmarx SCA Database and the National Vulnerability Database, thanks to the Package Сhecker plugin that is bundled with IntelliJ IDEA Ultimate.
Если вы работаете с файлом Markdown, в котором есть команды, их можно выполнить прямо из файла, используя специальные иконки на полях редактора.
Для Markdown появилось действие Copy code snippet, позволяющее в один клик скопировать данные в буфер обмена.
Мы переработали плавающую панель инструментов в Markdown-редакторе: теперь с ее помощью можно создавать списки, а в выпадающем меню выбирать стили заголовков. Вы также можете сами выбирать, что должно быть на этой панели.
Теперь в режиме LightEdit вам доступно больше возможностей без создания и открытия проекта. В новой версии можно переформатировать код, не загружая проект.
Мы добавили инспекцию Incorrect formatting: если форматирование файла не соответствует настройкам стиля кода, IDE сообщит об этом.
Чтобы соблюсти единство форматирования кода, в параметр Add a space at line comment start добавлен флажок Enforce on reformat, который ставится автоматически. По умолчанию он доступен для Java, Kotlin и Groovy и изменяет только комментарии к строкам, которые начинаются с буквенно-цифровых символов.
Инструмент форматирования из командной строки поддерживает режим Dry run для проверки файлов проекта. Если файл необходимо отформатировать, то программа завершится с ненулевым кодом возврата.
В IntelliJ IDEA 2022.1 есть поддержка новых возможностей Java 18, вышедшей в марте этого года. IDE поддерживает сниппеты, изменения сопоставления с образцом для switch-выражений и многое другое. Подробнее
В декомпиляторе Java улучшена совместимость с версией Java 17. Он поддерживает современные конструкторы языка, например sealed-типы и сопоставление с образцом, лучше выполняет декомпиляцию switch для строковых значений, предлагает аннотации типа и выявляет общие константы.
Мы добавили поддержку возможностей, появившихся в JUnit 5.7, в том числе аннотаций @EnabledIf/DisabledIf
, @NullSource/EmptySource
и @TempDir
.
Шаблон Surround with try/catch теперь повторно выдает исключение, обернутое в RuntimeException, а не пропускает его.
IntelliJ IDEA 2022.1 поддерживает Kotlin 1.6.20, так что теперь в IDE доступны все новые возможности языка, включая поддержку параллельной компиляции, прототип контекстного ресивера и улучшения в использовании общего кода на разных платформах. Подробнее
Оптимизация индексации пакетов значительно повысила скорость работы многих функций IDE: автодополнения, подсветки и операций, связанных с поиском ссылок. Количество и область операций повторной индексации после изменения кода также сократились.
Мы внесли несколько улучшений в функцию Smart Step Into, используемую при отладке Kotlin-проектов. Кроме того, исправлен ряд проблем с точками останова.
To ensure better Kotlin code coverage, the Kover plugin has been integrated with IntelliJ IDEA.
В новой версии автодополнение кода для Groovy поддерживает большинство Java-образных постфиксных шаблонов, таких как arg
, cast
, for
, iter
, nn
, notnull
, null
, not
, throw
, try
, var
, par
, sout
, serr
, while
, new
, reqnonnull
и return
.
IntelliJ IDEA Ultimate поддерживает микросервисы Go, обеспечивая такие возможности, как URL-адреса, конечные точки, Search Everywhere и иконки на полях редактора. Возможности доступны после установки плагина Go и в настоящее время работают только с функциями стандартной библиотеки. Подробнее
Теперь при работе со Spring Data MongoDB IntelliJ IDEA подсвечивает запросы JSON, предлагает варианты автодополнения для операторов и полей документа, а также обеспечивает переход к окну Database от сопоставленных объектов.
Появилось новое intention-действие для файлов .proto: оно добавляет отсутствующие выражения импорта для неразрешенных ссылок на сообщения. После добавления отсутствующих выражений импорта IDE предлагает варианты автодополнения для ссылок на сообщения.
IntelliJ IDEA Ultimate позволяет выполнять запросы и пользоваться автодополнением для имен сервисов и методов прямо из работающего инстанса сервера. The project does not need to contain .proto files, but the server should support gRPC reflection.
В новой версии IntelliJ IDEA Ultimate улучшена поддержка Thymeleaf: меньше ложных срабатываний инспекций, более высокая производительность IDE при редактировании шаблонов Thymeleaf, а также отрегулированные уровни инспекций и подсветки для корректной отправки уведомлений.
В IntelliJ IDEA Ultimate улучшена поддержка фреймворка Helidon. Теперь IDE предлагает автодополнение для ключей конфигурации в файлах properties и .yaml, а также поддерживает действия Go to Declaration и Quick Doc.
Мы добавили индикатор выполнения процессов Gradle, таких как, например, скачивание зависимостей и импорт артефактов. Он позволяет следить за тем, что происходит с файлами, и примерно понимать, когда процесс завершится.
Мы добавили экспериментальную функциональность в плагин компилятора Maven. Теперь можно отдельно установить уровни языка для исходных наборов производственных и тестовых данных. Чтобы включить этот параметр, перейдите в меню Preferences/Settings | Build, Execution, Deployment | Build Tools | Maven | Importing.
Мы обновили функцию Code Vision, и теперь IntelliJ IDEA может сразу показывать информацию об авторе кода, опираясь на историю системы контроля версий. Встроенные подсказки Code Author включены по умолчанию в меню Preferences / Settings | Editor | General | Inlay Hints | Code Vision.
Чтобы анализировать внесенные изменения было проще, мы улучшили работу действия Annotate with Git Blame. При наведении курсора на аннотацию IDE подсвечивает различия между строками прямо в редакторе, а при нажатии на аннотацию открывает Git-лог.
На панели Commit Details теперь содержится информация о подписях GPG и статусе сборки. Раньше эти данные можно было посмотреть только в Git-логе.
Новый интерфейс окна Git File History теперь не зависит от процесса индексирования: данные отображаются, даже если индексирование лога выключено.
В IntelliJ IDEA стало удобнее работать с предлагаемыми изменениями, поскольку теперь можно применять изменения в коде и создавать коммиты локально в IDE.
IntelliJ IDEA 2022.1 позволяет указать разные внешние инструменты для просмотра различий и слияния изменений в зависимости от типа файла. Их можно настроить в меню Settings / Preferences | Tools | Diff & Merge | External Diff Tools.
Добавлена новая конфигурация профилировщика: IntelliJ Profiler. Она объединяет возможности Async Profiler и Java Flight Recorder. Тем самым мы приблизились к своей цели — созданию универсального профилировщика для всех платформ.
В представлении Frames в окне Debugger с панели инструментов убрано действие Drop Frame. Вместо него появился внутристрочный значок Reset Frame.
Названия вкладок в окне Debugger по умолчанию теперь скрыты — так в окне больше свободного пространства. Чтобы отобразить их и поменять местоположение, используйте опцию Show Tab Labels в меню Layout Settings.
В плагине Selenium UI Testing существенно улучшен редактор объектов страницы. Мы оптимизировали работу и обновили интерфейс, уменьшив количество отвлекающих элементов. Элементы веб-страницы можно мгновенно добавить в код, не выходя из редактора, а затем продолжить работу. Кроме того, при добавлении нового элемента страницы в код можно выбрать тип селектора.
В мастере Page Object при создании нового класса объекта страницы можно выбрать язык и фреймворк автоматизации тестирования. Мы обеспечили доступ к мастеру из любого места в коде, где в качестве зависимости указана библиотека Selenium. Если вы хотите попробовать автоматическую генерацию объектов страниц с различными фреймворками и пользовательскими шаблонами, не создавая новый файл, рекомендуем воспользоваться режимом песочницы: Tools | Open Selenium Page Object Playground.
Ресурсы, загруженные из кластера, теперь можно изменить прямо в редакторе.
При необходимости вы можете указать путь к kubectl вручную. Для этого перейдите в Settings / Preferences | Build, Execution, Deployment | Kubernetes | Path to kubectl executable.
В новой версии вы можете перенаправлять порты для подов. Используйте для этого значок на панели инструментов или контекстное меню.
Для всех ресурсов в окне Services доступно новое действие Describe Resource. Его можно вызвать из контекстного меню или использовать значок на панели инструментов.
События кластера теперь показываются в отдельном узле в окне Services. Чтобы посмотреть события для конкретного пода, вызовите для него действие Describe Resource и посмотрите в результатах раздел Events.
Мы добавили базовую поддержку файлов werf.yaml и соответствующих шаблонов Helm, включая автодополнение кода, инспекции, быстрые исправления, рефакторинги и переименования для .Values.werf.image.*
, а также валидацию некоторых полей, таких как boolean
и int
.
Новая версия IntelliJ IDEA Ultimate поддерживает импорт дочерних значений с помощью настроек import-values для автодополнения и навигации по встроенным объектам в шаблонах.
Готовя версию 2022.1, мы значительно переработали интерфейс Docker в окне Services. Изменения коснулись настроек контейнеров, образов, сетей и томов.
Добавлена поддержка Docker Compose в Run targets. Например, для запуска приложения Spring Boot в группе контейнеров Compose перейдите к конфигурации запуска и создайте цель Compose с помощью Manage targets. После этого можно запустить приложение.
Добавлена поддержка Docker Registry HTTP API V2, который используется с Docker 1.6 и более поздними версиями. Он позволяет создавать простые и защищенные паролем реестры Docker V2, а также выполнять стандартные действия: просматривать, отправлять и извлекать образы.
Добавлен виджет Backend Control Center для удаленной разработки. Он показывает загрузку ЦП и памяти, объем дискового пространства и другие параметры, необходимые для отслеживания состояния бэкенда.
Новая настройка безопасности позволяет использовать переадресацию ключа SSH для аутентификации доступа к Git-репозиториям с удаленной машины. Другой вариант — использовать вспомогательное приложение SSH-агента.
Теперь можно указать путь скачивания и точное местоположение бэкенда IDE на удаленной машине.
Новая версия JetBrains Client поддерживает больше редакторов файлов: теперь вы можете работать не только с текстовыми документами, но и с изображениями в формате PNG, UML-диаграммами, файлами Jupyter Notebook и ресурсами разметки Android.
В меню на полях редактора добавлено действие Run with coverage и окно Profiler. В контекстное меню теперь включены окна Maven и Gradle, а также добавлены удобные пункты подменю.
Кроме того, мы улучшили функционал отладчика и добавили много действий для удобного анализа кода при удаленной разработке.
Теперь можно выбрать сразу несколько таблиц и скопировать их в другую схему. Выберите таблицы, которые нужно скопировать, и нажмите F5
, чтобы открыть диалог экспорта. При экспорте отдельной таблицы можно настроить соответствие столбцов, а также изменить DDL новой таблицы.
IDE поддерживает экспорт в другие СУБД, то есть целевая схема может относиться к любой базе данных в вашем проекте. Подробнее об этом читайте в нашем блоге.
Теперь редактировать результаты в коллекциях MongoDB так же просто, как в реляционных базах данных. Кроме того, можно редактировать наборы результатов, полученные с помощью .find()
. Это сработает, даже если после .find()
были выполнены методы курсора, меняющие результат, например sort()
или limit()
.
Мы обновили логику отмены выполняемых запросов. Теперь четко видно, что выполняется отмена запроса, а деактивация источников данных осуществляется только после предупреждения. Подробнее
Теперь можно отменить создание соединения, не деактивируя источник данных. Если нажать кнопку Cancel во время создания соединения, процесс будет остановлен, и появится сообщение Connection canceled. Подробнее
Благодаря встроенной поддержке React все основные функции IDE уже должны были работать в проектах Next.js. Мы добавили поддержку страниц — одной из наиболее важных вещей, специфичных для Next. js. IDE разрешает пути, использованные в свойстве href
компонентов Link
вашего кода, а также в теге form и других тегах. Автодополнение, навигация и рефакторинги тоже работают.
Мы добавили интеграцию с Volta, менеджером JavaScript-инструментов, IntelliJ IDEA 2022.1 автоматически распознает Yarn и npm, установленные с помощью Volta.
В новой версии появилось автодополнение методов extension
. Кроме того, редактор предлагает автоматически импортировать методы extension
и инстансы given
. Новые инспекции для модификатора infix
и аннотации @targetName
помогут соблюсти стиль кода. Мы значительно повысили производительность инструмента считывания .tasty
, и теперь скорость индексации библиотек Scala 3 увеличилась до двух раз.
Настроить новый Scala-проект стало проще. В обновленном мастере New Project можно на одном шаге выбрать сразу JDK проекта, нужную систему сборки и версию Scala.
Большинство объектов в Scala — псевдонимы, в том числе String
, Seq
, List
, Set
и Map
. Это важно для подсветки синтаксиса, GoTo, Quick Documentation, Quick Definition, Find Usages, Optimize Imports и других функций IDE, поскольку они работают с псевдонимами, а не с самими определениями. Для удобства редактор теперь обрабатывает псевдонимы в стандартной библиотеке как прозрачные экспорты, то есть, например, List
воспринимается как scala.collection.immutable.List
, а не scala.List
.
Раньше обнаружение неиспользуемых деклараций ограничивалось только привязками private
. Теперь инспекция Unused declaration поддерживает публичные привязки, введенные классами, методами, переменными, параметрами и т. п.
Мы постарались переработать отладчик Scala и упростить его использование: улучшили обработку objects
, параметров первичного конструктора, классов (class
) значений, Array
, lazy val
и коллекций, а также доработали вычисление выражений.
Теперь при ревью изменений кода в IDE можно выбрать, когда размещать комментарий.
For more details, check out this blog post.
Мы улучшили интерфейс код-ревью, выведя на экран используемые сочетания клавиш. Для перехода на новую строку при наборе комментария нажмите Enter. Ctrl+Enter — чтобы сохранить или опубликовать комментарий.