Недавно состоялся релиз IntelliJ IDEA 2020.2! В новой версии много нового: теперь можно полноценно управлять пул-реквестами GitHub из IDE и просматривать все ошибки и предупреждения в проекте с помощью виджета Inspections. Работать с несовершенным кодом помогает также новое окно Problems, в котором можно увидеть подробное описание ошибок и быстро их исправить. Если вы вносите изменения, которые мешают работе другого кода, IDE сообщит вам об этом в подсказке Related Problems.
Кроме того, IntelliJ IDEA 2020.2 поддерживает Jakarta EE и предоставляет новые возможности для работы с Quarkus, Micronaut, Amazon SQS API и OpenAPI.
В разделе Whats New на сайте подробно описаны все изменения, но здесь мы собрали самое важное.

Java
- Мы заранее подготовились к релизу Java 15 в сентябре, поэтому в
IntelliJ IDEA 2020.2 можно работать с
записями, запечатанными
классами и текстовыми блоками.
- Если изменение Java-метода или поля привело к ошибкам в других
файлах, IDE сообщит об этом. Нажмите на подсказку и увидите список
ошибок, которые можно сразу исправить.
- При помощи статического анализа IDE определяет, какое выражение
вызвало исключение во время работы приложения.
- Из структурного поиска можно легко создать инспекцию с
описанием и уровнем важности.
- Рефакторинг Introduce Variable работает более гибко:
теперь можно заменить только вхождения выражения внутри условия или
цикла (раньше можно было заменить либо одно, либо все
вхождения).
- Когда вы вызываете метод Stream API на коллекции/массиве, IDE
автоматически подставляет stream(). Кроме того, в цепочках вызовов
автодополнение предлагает методы нужного типа.
- Новое действие разрешает преобразовать цепочку вызовов Optional
в цепочку if-выражений.
- Вы можете свернуть несколько однотипных операторов в цикл, а
intention-действие Unroll loop теперь разворачивает больше циклов,
запрашивая количество итераций у анализатора потока
данных.
- Чтобы шаблоны live templates для Java было проще найти, мы
сгруппировали их под отдельным узлом в Settings | Preferences /
Editor / Live Templates.
- Благодаря анализу потока данных, IDE сообщает о нетривиальных
выражениях, которые вычисляются в 0, и предупреждает о ненужных
сравнениях, в которых результат Math.min или Math.max не бывает
больше или меньше другого операнда.
Редактор
- Добавили виджет Inspections, который показывает, сколько
предупреждений и ошибок найдено в вашем файле, и позволяет легко
перемещаться между ними.
- В новом окне Problems можно посмотреть список предупреждений и
ошибок с описаниями и быстро исправить проблемный код.
- Теперь можно заранее посмотреть, как будет выглядеть код после
применения быстрого исправления (quick-fix).
Система контроля версий
- Все действия по обработке пул-реквестов GitHub доступны прямо
из IDE. Вы можете просматривать, назначать и объединять
пул-реквесты, читать комментарии (как в хронологии, так и в коде),
отправлять комментарии и ревью, а также принимать
изменения.
- Для работы над проектами в файловых системах Linux или Windows,
можно пользоваться Git, установленный в WSL2.
- Появилась возможность удалять коммиты, выбирать несколько
коммитов из локальной ветки и объединить их в один на вкладке
Log.
- При сравнении двух веток в IntelliJ IDEA все коммиты
отображаются в одном окне.
- Вместо авторизации в GitHub по паролю теперь используется
авторизация по протоколу OAuth.
Фреймворки и технологии
- В сентябре выходит
Jakarta EE 9, и IntelliJ IDEA уже поддерживает основные
технологии, включая CDI, JPA, Batch, Bean Validation, JSF, JAX-RS,
WebSocket, Servlets, JSP, JSON-P, JSON-B, Security, EJB и
JTA.
- Теперь можно создавать проекты Java EE 8 и Jakarta EE 9 в
обновленном мастере проектов.
- Подсветка кода и автодополнение работают для файлов
конфигурации .properties и YAML в проектах Quarkus.
- IDE позволяет переходить от файлов свойств Quarkus к
настроенным bean-компонентам и обратно, а также от Java-кода к
файлам свойств.
- В редакторе предусмотрена навигация по встроенным
bean-компонентам. Кроме того, мы обновили инспекции для работы с
упрощенным синтаксисом Quarkus.
- В тестах REST Assured теперь работает автодополнение
URL-адресов и навигация к соответствующим ресурсам.
- В IDE появилась интеграция с интерфейсом
Swagger.
- IntelliJ IDEA теперь показывает структурные различия между
спецификациями OpenAPI.
- Можно создавать проекты Micronaut в мастере создания
проектов.
- Для приложений Micronaut и Amazon SQS API, в которых
используется асинхронная обработка данных через RabbitMQ или Kafka,
теперь работает автодополнение имен, поиск использований, и
навигация по очередям и темам с помощью значков на поле
редактора.
- IntelliJ IDEA может автоматически генерировать HTTP-запросы
JAX-RS и MicroProfile и открывать их во встроенном
REST-клиенте.
- Selenium-плагин поддерживает интеграцию с Selenoid. Теперь
прямо из файла browsers.json можно запустить новое тестовое
окружение.
Профилировщик
- Мы улучшили инструмент просмотра дампов памяти HPROF. Теперь
для каждого объекта возможно увидеть количество памяти, которое он
не дает освободить; пути до ближайших корневых объектов сборщика
мусора; дерево доминаторов (удерживаемые от удаления объекты); а
также обратные ссылки из других объектов.
Взаимодействие с IDE
- С помощью нового плагина
Shared Indexes можно загружать уже построенные индексы, вместо
того чтобы создавать их локально. Это ускорит индексирование
больших проектов на 6075%.
- Во время индексирования теперь работает автодополнение для Java
и PHP.
Терминал
- Управлять IDE можно прямо из терминала. Если команда подсвечена
в терминале, нажмите Cmd/Ctrl+Enter, чтобы открыть соответствующий
инструмент в графическом интерфейсе IDE. Читайте, как это работает
в нашем
блоге.
Инструменты сборки
-
Maven Wrapper теперь автоматически устанавливает версию Maven,
необходимую для вашего проекта.
- Раньше было обязательно использовать одну и ту же версию Maven
во всех открытых проектах, а, начиная с этого релиза, можно
выбирать нужную для вашего проекта.
- Теперь вывод встроенного инструмента сборки отображается в окне
Build, там же, где обычно вы видите результаты сборок Gradle и
Maven.
- IntelliJ IDEA 2020.2 поддерживает автодополнение имен проектов
и навигацию от имени проекта к файлам build.gradle.
JavaScript и TypeScript
- Новые intention-действия (Alt + Enter) помогут ускорить
некоторые операции. Например, можно быстро преобразовать цикл for с
числовым индексом в перебирающий метод forEach.
- Теперь очень легко использовать Prettier в качестве форматера
по умолчанию в JavaScript-проектах: просто отметьте галочкой опцию
On code reformat в настройках.
- Мы добавили поддержку Nuxt.js и настройки стиля кода,
специфичные для Vue.
База данных
- Теперь можно просматривать и редактировать длинные значения на
отдельной панели в режиме Maximize.
- Работать с ячейками типа boolean стало гораздо удобнее, потому
что вы видите в них значения, а не флажки.
- Результаты запросов к базе данных можно увидеть в
редакторе.
- Мы добавили начальную поддержку диалекта Google BigQuery. IDE
обеспечивает подсветку и автодополнение запросов.
Docker
- Благодаря поддержке TLS-соединений с демоном Docker,
пользователи Windows могут безопасно подключиться к
Docker.
Kubernetes
- В настройках Preferences/Settings | Build, Execution,
Deployment | Kubernetes теперь можно указать кастомный файл
kubeconfig.
- Мы добавили поддержку редактирования ConfigMaps/Secrets. Более
того, IDE берет информацию не только из текущего проекта, но и из
кластера.
- Для объектов ConfigMaps/Secrets и их ключей можно вызвать
Find Usages из кластера.
Scala
- Добавлен
автоматический импорт Implicits.
- В новой версии
фигурные скобки добавляются и удаляются в зависимости от
отступов.
- В редакторе появились навигационные значки для компаньонов. Вы
также можете перейти к компаньону, вызвав действие Go To
на ключевых словах class, trait или object.
- Мы сделали рендеринг Scaladoc прямо в редакторе и улучшили его
во всплывающем окне Quick Documentation: абзацы, списки и макросы
отображаются корректно.
- Теперь можно сразу подставить и имя метода, и его аргументы,
если в текущей области доступа присутствуют соответствующие
значения.
- Кроме того, вы можете применить статическую функцию к аргументу
при помощи точечной записи, которая может использоваться в
сочетании с алгебраическими типами данных.
Android
- IntelliJ IDEA 2020.2 включает в себя все нововведения из
Android Studio 4.0.
Другие изменения
- Если вы используете программу чтения с экрана, IDE определит
это и автоматически включит функции специальных
возможностей.
- В IntelliJ IDEA 2020.2 можно использовать эмодзи Unicode на
Linux.
- Значительно улучшена производительность удаленной отладки
Java-проектов.
- Мы перешли с JavaFX на JCEF (Chromium Embedded Framework).
Начиная с версии 2020.2, больше не будет встроенной поддержки
JavaFX, теперь она вынесена в отдельный плагин, который внешние
плагины могут использовать в качестве зависимости.
- У сочетания клавиш Alt+6 (Linux and Windows) / Cmd+6 (macOS)
новое назначение: теперь вместо вызова TODO оно открывает окно
Problems.
- Начиная с этой версии, IntelliJ IDEA не поддерживает запуск и
тестирование проектов, написанных на Java 5 и более ранних версиях.
В редакторе поддержка Java 5 остается.
Делитесь своими впечатлениями о новой версии в комментариях, на нашем форуме, и в Twitter. Все подробности о новой функциональности со скриншотами можно найти на нашем сайте и в видеообзоре.
Скачивайте IntelliJ IDEA 2020.2 и работайте еще продуктивнее с новыми фичами!
Программируйте с удовольствием!