В версии IntelliJ IDEA 2021.2 появился анализ кода Java в масштабе всего проекта, новые действия, выполняемые при сохранении изменений, новый интерфейс для управления зависимостями Maven и Gradle и другие полезные возможности. Подробный рассказ о новых функциях — ниже, а также в нашем видеообзоре.
В этой версии мы реализовали новую функцию для отслеживания ошибок в масштабе всего проекта перед компиляцией. При нажатии на соответствующий значок в окне Problems запускается проверка всех изменений кода. После завершения этого процесса IDE отображает все найденные ошибки, в том числе те, которые можно обнаружить только при сканировании всего проекта целиком.
Функция работает с проектами небольшого и среднего размера.
Мы добавили ряд действий, которые могут выполняться при сохранении изменений в проекте, в том числе форматирование кода и оптимизация импорта. Они собраны вместе в меню Preferences / Settings | Tools | Actions on Save. Их удобно настроить, поставив нужные флажки. Если нужно задать более точные параметры для какого-то действия, наведите на него курсор и нажмите на ссылку для настройки.
Both IntelliJ IDEA Community Edition and IntelliJ IDEA Ultimate now include Package Search, a powerful new interface to manage your project dependencies. Пакетный поиск позволяет находить и добавлять новые зависимости, а также управлять существующими. Новый плагин позволяет посмотреть информацию обо всех зависимостях, в том числе проверить наличие обновлений.
Кроме того, мы добавили инспекцию, которая позволяет применять обновления прямо в редакторе.
В настоящее время пакетный поиск работает с проектами Maven и Gradle. Кроме того, в EAP-версиях плагина Scala есть экспериментальная поддержка проектов sbt. Подробнее об этом можно прочитать здесь.
Инспекции и быстрые исправления не просто удобны для написания кода — они еще и подробно описаны. В обновленных описаниях объясняется, какие изменения предлагает соответствующая инспекция и почему. Для некоторых инспекций приведены примеры использования. Подробная информация — в меню Preferences/Settings | Editor | Inspections.
Мы сделали диаграммы более информативными: теперь их можно просматривать в режиме Structure, который представляет собой схему диаграммы с возможностью предпросмотра выбранного блока и его соседей. Новый режим просмотра Structure поддерживает масштабирование, перемещение полотна, режим лупы, изменение структуры и экспорт в виде изображения.
Теперь в уведомление об авторских правах на проект можно включить как год создания проекта, так и год текущей версии. Обновленный шаблон с двумя датами доступен в меню Preferences/Settings | Editor | Copyright | Copyright profile.
В IntelliJ IDEA 2021.2 внесены изменения в поддержку Markdown. Теперь можно конвертировать файлы .md
в различные форматы (.html
, .docx
, .pdf
) и наоборот. Кроме того, мы устранили проблему с форматированием списков, и теперь действия Enter, (Shift) Tab и Reformat работают корректно. Можно изменить размер изображения, добавить описание и перетащить изображение в нужное место вместо того, чтобы писать HTML-тег с путем к файлу. Кроме того, новая легкая панель инструментов, на которой представлены все самые частые действия, будет появляться только при выделении кода, чтобы не отвлекать вас от важных задач.
IntelliJ IDEA может самостоятельно находить проекты Eclipse, сохраненные на локальной машине, и предлагать открыть их с начального экрана. Когда вы запускаете IDE в первый раз, выберите вариант Open existing Eclipse projects. Если вы этого не сделаете, автоматически обнаруженные проекты Eclipse появятся в списке недавних проектов выделенного узла.
Настроить параметры IntelliJ IDEA для конкретных сценариев использования можно в разделе Advanced Settings в меню Preferences/Settings. Например, можно добавить левое поле в режиме Distraction-free или сделать так, чтобы курсор двигался вниз, когда вы используете действие Comment with Line Comment.
Теперь нужное окно можно просто перетащить в удобное место — как внутри основного окна IDE, так и в отдельное окно. Просто нажмите на заголовок окна и перетащите в любую выделенную область.
IntelliJ IDEA автоматически очищает директории кэша и журналов, обновлявшиеся более 180 дней назад. Этот процесс не затрагивает настройки системы и директории плагинов. Процесс можно запустить вручную в меню Help | Delete Leftover IDE Directories.
Если в проекте используется фреймворк, который работает в IntelliJ IDEA через плагин, IDE предупредит вас об этом и предложит включить соответствующий плагин прямо из уведомления.
Мы упростили навигацию в окне настроек Preferences/Settings: в правом верхнем углу окна появились стрелки. Они позволяют быстро перемещаться между открытыми разделами.
Когда в JetBrains Toolbox App появится обновление какого-либо продукта, IDE сообщит вам об этом. Скачать и установить новую версию можно будет прямо из IntelliJ IDEA. Эта функция работает с JetBrains Toolbox App 1.20.8804 и более поздних версий.
Чтобы продлить время работы ноутбука от аккумулятора, можно включить в IntelliJ IDEA режим экономии электроэнергии. Мы упростили доступ к этому режиму: управлять им можно из строки состояния. Щелкните на ней правой кнопкой мыши и выберите Power Save Mode: в правом нижнем углу основного окна IDE появится новый значок. Чтобы включить или выключить режим, щелкните по этому значку.
В IntelliJ IDEA 2021.2 появились новые функции для написания кода со включенным инструментом чтения с экрана на macOS. Теперь можно услышать доступные предложения по автодополнению кода, выбранный пункт в поле со списком и весь список целиком, а также результаты поиска при использовании функции Search Everywhere.
Мы продолжаем улучшать отзывчивость интерфейса и бороться с зависаниями. В новой версии нам удалось справиться с блокировкой интерфейса при использовании контекстных меню, всплывающих окон и панелей инструментов. Кроме того, мы вынесли из потока пользовательского интерфейса некоторые операции, требующие индексации, и это должно помочь избавиться от зависания в ряде ситуаций.
Теперь различать публичные (public), защищенные (protected) и частные (private) методы, поля и классы Java будет проще, если настроить для них определенные цвета. Это можно сделать в меню Preferences/Settings | Editor | Color Scheme, развернув узел Visibility.
Настроить новый проект JavaFX стало проще. Всего за два шага можно добавить SDK проекта, язык, нужную систему сборки, тестовый фреймворк и часто используемые библиотеки с короткими описаниями.
Для отдельных сценариев использования при анализе потока данных мы добавили несколько новых инспекций: например, для отслеживания диапазона чисел с плавающей точкой или размера коллекции для методов обновления. Новая инспекция Write-only object предупреждает, когда вы изменяете объект, но не отправляет ему запросы относительно пользовательских классов, определенных в проекте и стандартной библиотеке.
Подробнее о других новых и улучшенных инспекциях читайте в нашем блоге.
Начиная с версии 2021.2, функция автодополнения кода Kotlin по умолчанию использует механизм машинного обучения. Предложения подбираются более аккуратно, поскольку IDE учитывает выбор тысяч реальных пользователей в схожих ситуациях. Настроить автодополнение кода с использованием машинного обучения можно здесь: Preferences/Settings | Editor | Code Completion.
Раньше выполнять тесты можно было только после того, как завершится анализ кода. В новой версии их можно запустить сразу после открытия файла, нажав на значок Run test в поле редактора.
Мы внесли ряд изменений и улучшений в агент корутин в отладчике. Теперь перейти к нему можно через вкладку Coroutine в окне Debug. Он работает для конфигураций запуска Java с зависимостью от kotlinx.coroutines, а также для конфигураций запуска Spring и Maven.
Кроме того, мы исправили ошибку, когда локальные переменные не использовались после прохода точки приостановки и исчезали в режиме просмотра Variables в окне Debugger.
Не теряйте время даром! Пока IDE индексирует проект, вы можете запустить свое приложение и выполнить его отладку. Кнопки, связанные с Run/Debug Configuration, теперь активны во время индексации.
В IntelliJ IDEA 2021.1 мы впервые реализовали поддержку WSL 2 и внедрили функцию Run Targets. Начиная с версии 2021.2 эти функции можно использовать для Kotlin.
В этой версии добавлена удобная инспекция, которая позволяет упростить синтаксис и объединить цепочку из нескольких вызовов методов внутри коллекции.
В предыдущих версиях нужно было вручную вводить buildString, чтобы дописать свой код. Новое intention-действие позволяет сделать это автоматически в два клика.
В новой версии основной упор сделан на поддержку Scala 3: она значительно улучшена. Индексация выполняется быстро и точно независимо от версии. Можно без проблем создавать проекты Scala 3 на основе sbt и .idea, а также Scala 3 SDK. Редактор лучше справляется с большими отступами. Мы обеспечили поддержку конструкций Scala 3 в проектах Scala 2 (-Xsource:3
). Кроме того, улучшен отладчик, инструмент форматирования, REPL, автоматический импорт, перечисления, методы расширения и многое другое. Но помните, что работа над поддержкой Scala 3 еще не закончена, поэтому не исключены сложности.
Как это всегда бывает на платформе IntelliJ Platform, в плагине Scala есть встроенная подсветка ошибок. Это быстрая и легкая функция, которая поддерживает все стандартные возможности IntelliJ IDEA. Однако система типов Scala очень сложна, поэтому алгоритм время от времени находит ложные ошибки. Мы работаем над улучшением этой функции, но для некоторых кодовых баз может оказаться удобнее использовать для подсветки ошибок компилятор Scala. При этом нужно помнить, что такой вариант точнее, но медленнее, требует больше ресурсов и не поддерживает такие функции, как подсказки о несоответствии типов, быстрые исправления и инспекции. Поэтому, если в коде не слишком много ложных ошибок, лучше использовать встроенную подсветку.
IntelliJ IDEA позволяет просматривать HTML-файлы в браузере с помощью встроенного веб-сервера. Теперь IDE будет автоматически обновлять страницы в браузере, когда вы изменяете и сохраняете файлы HTML, CSS и JavaScript. Чтобы использовать эту функцию, откройте в редакторе файл HTML, наведите на него курсор и нажмите на значок нужного браузера (поддерживаются любые браузеры).
Вам больше не нужно тратить время на рефакторинг отдельных значений и функций useState — IntelliJ IDEA переименует их самостоятельно. Установите курсор на значение состояния и нажмите Shift+F6 или выберите Refactor | Rename в контекстном меню.
require()
Знаете ли вы, что IDE умеет добавлять отсутствующие операторы импорта при вводе ES6-символов? Теперь то же самое возможно для модулей CommonJS: при автодополнении кода будет вставлен оператор require.
Async Profiler — любимый профилировщик множества разработчиков. Он отличается точностью и надежностью. В новой версии IntelliJ IDEA обеспечена полная поддержка профилировщика в Windows и Apple M1 в дополнение к Linux и macOS на других чипах. Таким образом, теперь его можно использовать в большинстве сред.
IntelliJ IDEA поддерживает Async Profiler 2.0. Для этого нужна новая конфигурация Async Profiler, объединяющая возможности профилировщиков ЦП и распределения ресурсов. На вкладках Flame Graph, Call Tree и Method List появился новый раскрывающийся список Show, где можно выбрать просмотр задач ЦП или распределения памяти. На хронологическом графике показаны оба параметра. Отображение можно настроить с помощью поля в правом верхнем углу.
При двойном нажатии на объекте на вкладке Classes в IntelliJ IDEA 2021.2 данные выбранного объекта отображаются на вкладке Retained Objects в виде диаграммы «солнечные лучи». Если вы больше привыкли анализировать данные, представленные в виде дерева, воспользуйтесь вкладкой Dominator Tree.
Если вы хотите создать пользовательскую JDK, содержащую только модули и зависимости, необходимые для работы над проектом Jigsaw, можно воспользоваться окном Project structure, чтобы добавить в проект новые артефакты JLink.
Мы переработали интерфейс настроек Gradle Run/Debug Configurations. Теперь основные параметры собраны в одном окне. При необходимости вы можете добавить и другие параметры.
Для файлов проектов, хранящихся в WSL 2, используется демон, который переносит содержимое файлов из Linux в Windows и обратно через сокет. Благодаря этому удалось увеличить скорость индексации, поскольку она зависит от того, с какой скоростью IDE считывает содержимое файла.
В зависимости от используемого языка прирост в скорости может меняться. Например, для JS-подобных языков время индексации сократилось втрое.
Теперь в WSL 2 можно выполнять задания Ant.
В версии 2021.2 в список действий, которые могут выполняться перед коммитом, было добавлено выполнение тестов. Если установить флажок Run Tests в разделе Before Commit, IDE протестирует внесенные изменения и уведомит о любых возникших проблемах.
Кроме того, мы добавили возможность настройки параметров Analyze code и Cleanup: для этого надо нажать на Choose profile рядом с соответствующим пунктом.
Ход выполнения и результаты всех предкоммитных проверок отображаются в поле Commit без появления дополнительных модальных окон.
IntelliJ IDEA 2021.2 дает возможность защитить коммиты в Git, подписав их с помощью GPG. Для этого перейдите в меню Preferences/Settings | Version Control | Git, нажмите Configure GPG Key и выберите нужный ключ из раскрывающегося списка. Если вы используете ключ GPG впервые, его нужно настроить.
Узел, где хранятся изменения до коммита, раньше назывался Default changelists. В новых проектах, созданных начиная с версии 2021.2, он будет называться Changes. Кроме того, при выполнении операций Git списки изменений не будут создаваться автоматически.
Независимо от того, как вы вызываете действие Show Diff, IntelliJ IDEA по умолчанию отображает различия между исходными и измененными файлами в редакторе. Если вам удобнее отслеживать изменения в отдельном окне, просто вытащите нужный файл из редактора.
Нужный текст легко найти в версиях Local History: просто введите ключевые слова в поле поиска в диалоговом окне Local History.
Теперь во встроенном терминале можно выбирать форму курсора. Кроме того, он поддерживает функцию Use Option as Meta key, которая позволяет использовать клавишу Option (⌥) как метамодификатор в сочетании с другими клавишами. Например, можно использовать следующие сочетания:
Раньше, когда вы останавливались на точке останова, исполняли код пошагово, перемещались между фреймами или использовали действия prev/next frame, IDE открывала файлы в нескольких вкладках. В версии 2021.2 в отладчике появилась вкладка предварительного просмотра. Ее можно включить в меню Settings/Preferences | General | Editor Tabs. В этом случае все файлы откроются друг за другом в одной вкладке.
Если вы нажмете на соответствующий значок в окне Endpoints, IntelliJ IDEA отобразит схему связей микросервисов. На этой схеме можно отследить, какой клиент вызывает тот или иной сервис, и перейти к этому вызову в коде. Для этого просто нажмите на стрелку, соединяющую элементы схемы.
Схема доступна для проектов Java и Kotlin, если вы используете Spring, Micronaut, Quarkus или Helidon.
Новый рефакторинг Migrate... позволяет быстро и легко перенести проект или модуль с Java EE на Jakarta EE. После запуска миграции функция предпросмотра Refactoring Preview выводит все найденные случаи использования импортов Java EE. Их можно проверить и завершить процесс.
При создании нового проекта Spring Initializer IDE автоматически скачает общие индексы, сократив время индексации и ускорив запуск IDE. Чтобы включить эту функцию, поставьте флажок во втором окне мастера создания нового проекта. Обратите внимание: функция не работает, если вы отключили общие индексы в меню Settings/Preferences | Shared Indexes.
In this version, we’ve introduced support for an Entity Graph which you can define with the @NamedEntityGraph
annotation. IDE позволяет задать для этой аннотации уникальное имя и атрибуты (@NamedAttributeNode
), используя автодополнение кода, обнаружение ошибок и переход к соответствующей сущности при нажатии на атрибут.
Значительно улучшена навигация по URL в JavaScript и TypeScript. For client-side code (for Angular or Axios), URL references have been added for the $http service and HttpClient request method calls, and URL completion works based on available server-side frameworks and OpenAPI specifications. Что касается серверного кода, пользователи Express могут видеть обработчики маршрутов в окне Endpoints и искать объявления маршрутов and Express в меню Navigate | URL Mapping.
В этой версии мы добавили поддержку еще одного фреймворка — gRPC. В дальнейшем набор функций для работы с ним будет расширен. В настоящее время можно просматривать конечные точки gRPC в окне Endpoints. Ждите новостей!
Ktor, a web application framework for creating connected systems, is bundled with IntelliJ IDEA Ultimate. Прямо на начальном экране можно создать новый проект Ktor для разработки серверных или клиентских приложений, настроить основные параметры проекта и различные функции, поддерживаемые Ktor.
Плагин Protocol Buffers интегрирован с IntelliJ IDEA Ultimate, и команда JetBrains обеспечила его полную поддержку. Если вы работаете с IntelliJ IDEA Community Edition, то можете скачать и установить Protocol Buffers через Preferences/Settings | Plugins | Marketplace.
К Docker можно подключиться через SSH. Чтобы настроить SSH-соединение, перейдите в Preferences / Settings | Build, Execution, Deployment | Docker, нажмите переключатель On SSH machine, затем нажмите … и в открывшемся окне введите параметры SSH-соединения.
Приложения Docker Compose можно отобразить в окне Services, даже если они не запущены. Для этого просто нажмите на кольцевые стрелки в окне редактора.
Мы сделали новые значки для различных состояний сервисов Docker Compose. Чтобы освоиться с ними, воспользуйтесь подсказками, которые появляются при наведении курсора на каждый значок.
Мы внесли ряд изменений в журналы Docker Compose. У каждого узла сервиса есть свой журнал, а в журналах контейнера можно настроить показ меток времени и предыдущих сеансов. Эти функции можно отключить в меню Preferences/Settings | Build, Execution, Deployment | Docker | Console, сняв флажок Fold previous sessions in the Log console.
В настройках Run/Debug Configurations появились новые параметры Docker Compose. Нажав на Modify options, можно включить Enable BuildKit, Enable compatibility mode и Specify project name. Проекту можно дать любое имя, он не наследует его от папки, где приложение Docker Compose находится по умолчанию.
Управлять контейнерами Docker стало еще проще благодаря новым кнопкам, которые позволяют запускать и перезапускать контейнеры, а также приостанавливать и возобновлять их работу. Кроме того, все эти действия можно выполнить сразу для нескольких контейнеров.
Удаляя образы Docker с зависимостями, можно указать, какие зависимости следует удалить, а какие — оставить.
Мы добавили два новых узла в окне Services: Networks и Volumes. Первый узел включает в себя все сети, не связанные с приложением Docker Compose. The second includes all the Docker Volumes. Удалить тома можно так же, как изображения (см. выше).
We’ve added support for version 3 of the Docker Compose file format. Поэтому теперь IntelliJ IDEA правильно использует возможности версии 3, и для этих файлов работает автодополнение кода.
В IntelliJ IDEA 2021.2 можно использовать поле alias в разделе dependencies в Chart.yaml (api v2) или requirements.yaml (api v1). В этом поле указывается другое имя для текущей зависимости. Поле alias может быть полезно, если существующая зависимость используется несколько раз, и вы хотите отличать эти использования. Кроме того, alias поможет в тех случаях, когда в имени диаграммы использованы символы, запрещенные в идентификаторах GoTemplate.
Иногда при работе в кластере Kubernetes вы получаете доступ к определенным пространствам имен, но у вас нет списка всех пространств имен кластера. Теперь в таких случаях можно создать список доступных пространств имен в Preferences / Settings | Tools | Kubernetes.
Мы упростили управление несколькими пространствами имен, чтобы можно было быстро найти самые часто используемые. Теперь избранное пространство имен можно отметить звездой. Такие пространства имен отображаются в начале списка, а остальные будут отсортированы в алфавитном порядке.
В новой версии можно создать источник данных DDL на основе обычного. На диске создаются файлы DDL, а на их основе — новый источник данных. Благодаря этому вы всегда сможете пересоздать эти файлы и обновить источник данных DDL. Пошаговые инструкции по использованию этой функции — в нашем блоге.
Показывать скрытое ранее окно Services не нужно, если запрос не возвращает данные. Теперь вы можете самостоятельно определить в Preferences / Settings | Tools | Database | General, при выполнении каких операций появляется окно Services.
Автодополнение кода теперь работает для различных типов полей и операторов в консоли MongoDB. Подробнее читайте в нашем блоге.
При разработке юнит-тестов важно иметь возможность вставить случайный адрес электронной почты, имя или номер телефона. Новый плагин Test Data, который входит в наш Набор для автоматизации тестирования, позволяет выполнять множество действий для генерации случайных данных. Доступ ко всем возможностям — в меню Generate (Cmd+N). Если вам нужны новые данные в особом формате, нужный пользовательский формат легко создать с помощью регулярных выражений или шаблонов Velocity. Все пользовательские типы данных доступны в массовом режиме, и ими можно поделиться с командой.
Мы добавили значки статусов заданий Space на вкладку Log окна Git, чтобы было легко отследить ход выполнения задания, посмотрев в список коммитов. При нажатии на значок откроется всплывающее окно с автоматической информацией о задании.
Чтобы отключить показ информации о статусе, нажмите на значок глаза на вкладке Log и выберите Show Columns | Space Automation.
Общаться с коллегами при ревью кода в Space стало удобнее: их можно упомянуть, введя символ @, а затем имя коллеги. Эта небольшая, но очень полезная функция работает в хронологическом графике и в комментариях к коду.
В новой версии IDE в выбранном ревью кода можно отображать связанные ветки. На вкладке Details можно посмотреть список всех веток, куда сделаны коммиты, во время работы над текущей задачей.
Теперь вам будет проще понять логику действий коллеги, за работой которого вы наблюдаете, поскольку вы сможете видеть предложения функции автодополнения кода, которые он использует. Эта функция работает во время сеанса Code With Me в режиме Following.
В IntelliJ IDEA 2021.2 обновлена функция Undo. Она значительно упрощает совместное программирование. Переработанная логика Undo позволяет как ведущему разработчику, так и гостям отменять собственные изменения в коде. Таким образом, переход на версию 2021.2 позволит избежать неприятных ситуаций, когда один из разработчиков случайно удаляет работу своих коллег. Это особенно полезно при парном и групповом программировании.
Пользователям стала доступна одна из самых долгожданных функций — демонстрация экрана. В версии 2021.2 можно продемонстрировать коллегам окно любого приложения на экране компьютера, а не только окно IDE JetBrains. Это упрощает совместную работу.
Пользователи IntelliJ IDEA 2021.2 могут поделиться с другими участниками сеанса открытыми портами — для этого используется встроенный прокси. Если ведущий запускает приложения, используя определенный порт, остальные могут получить к нему доступ через локальный хост на своих машинах.
Начиная с этой версии, пользовательский интерфейс IntelliJ IDEA полностью локализован на китайский, корейский и японский языки. Локализованный интерфейс можно скачать в виде плагинов с отдельными языковыми пакетами, которые легко установить в IDE. Более 1,5 млн пользователей начали использовать частично локализованные EAP-версии. Теперь доступна полностью локализованная версия.
Плагин Android обновлен до версии 4.2.0.
Мы проанализировали частоту использования плагинов, и убрали некоторые из комплекта: Resource Bundle Editor, Drools, JSP Debugger Support, CoffeeScript, Spring Web Flow, Spring OSGI, Arquillian, AspectJ, Guice, Helidon, Emma и EJB. Если эти плагины вам нужны, их можно установить вручную из JetBrains Marketplace.