Привет, Хабр!
На прошлой неделе состоялся релиз IntelliJ IDEA 2020.1, и в этом посте мы коротко расскажем о самом интересном в новой версии. Из крупного: мы добавили поддержку Java 14, анализ потока данных в отладчике, режим редактирования файлов без открытия проекта (LightEdit) и новые фичи для разных фреймворков. Все подробности можно узнать на странице What’s new.
Java
- Новая версия IntelliJ IDEA поддерживает Java 14. В частности, появилось автодополнение, навигация, инспекции, генерация конструкторов для записей (JEP 359) и возможность исправить перегруженные выражения instanceof-and-cast на лаконичные pattern-переменные (JEP 305).
- Больше не нужно качать Java руками. Можно скачать и установить JDK прямо в IDE, как при создании нового проекта, так и при открытии существующего.
- Мы добавили новые инспекции. Они проверяют корректность использования заглавных букв в шаблонах `SimpleDateFormat`, ищут избыточные вызовы методов, находят и предлагают удалить лишние экранирующие символы в строковых литералах и делают многое другое.
Редактор
- Появился долгожданный режим LightEdit. С его помощью можно быстро вносить изменения в отдельные файлы в облегченном редакторе, не создавая и не загружая проект. Открывать файлы в режиме LightEdit можно из командной строки (`idea file.extension`), с начального экрана IDE или из файлового менеджера операционной системы. Подробнее в блоге (англ.).
- Новые Rename и Change Signature позволяют изменить сигнатуру метода или класса, просто изменив параметры класса или метода в коде. Появится значок на поле редактора, нажав на который можно просмотреть и применить изменения к объявлению класса/метода и ко всем его использованиям. Подробнее в блоге (англ.).
- Читать Javadocs в редакторе весьма неудобно из-за обилия тегов, через которые приходится продираться, особенно если нужно перейти по ссылке. Поэтому мы научили IDE рендерить Javadocs прямо в редакторе.
- Добавлена первая реализация Code vision — фичи, которая позволяет видеть информацию о коде прямо в редакторе. В этой версии вы можете включить показ количества использований рядом с каждой декларацией.
А еще в редакторе появились:
- Быстрый просмотр определения типа для Java-символов.
- Отображение методов классов и интерфейсов в панели навигации.
- Дзен-режим для полного погружения.
- Умная проверка грамматики.
Отладчик
- В отладчике теперь поддерживается анализ потока данных. Он предсказывает, как будет выполняться программа. Когда выполнение приложения прерывается на точке останова, IDE производит анализ потока данных на основе текущего состояния программы и показывает, значения каких проверок будут равны true, а каких — false. Читайте подробнее в блоге (англ.).
- Теперь можно закрепить любое поле объекта в верхней части списка полей. Это удобно, когда у объекта так много полей, что трудно найти нужное.
Профилировщик
- В IntelliJ IDEA 2020.1 теперь можно открывать файлы дампов памяти `.hprof`, которые помогают обнаружить утечки памяти. Чтобы открыть hprof-файл, перейдите в раздел Help | Find action и введите «hprof» для поиска действия Open Hprof Snapshot. Обратите внимание, что эта функциональность пока находится в экспериментальном режиме.
- Профилировщик теперь может сворачивать рекурсивные вызовы и фокусироваться на вызовах методов с помощью соответствующих опций. Разобраться с работой профилировщика поможет данная данная статья в документации (англ.).
VCS
- Диалог Interactively Rebase from Here стал по-настоящему интерактивным. Теперь в нем есть диаграмма, показывающая, какие действия были применены к каждому коммиту, отображаются сведения о коммитах, и можно просмотреть различия и при необходимости отменить изменения.
- Мы переработали интерфейс для Commit и заменили модальный диалог полноценным инструментальным окном Commit. У новых пользователей это окно включено по умолчанию, а те, кто обновился со старой версии, могут включить его в меню Preferences/Settings | Version Control | Commit Dialog.
А еще:
- При отсутствии Git его теперь можно установить прямо из IDE.
- Обновлено окно Branches.
- На вкладке Log теперь отображается список веток.
Интерфейс
- Мы разработали собственный шрифт JetBrains Mono, получили массу положительных отзывов и решили сделать JetBrains Mono шрифтом по умолчанию в IntelliJ IDEA. Если вам вдруг не понравился JetBrains Mono, то всегда можно откатиться к старому системному моноширинному шрифту в Preferences/Settings | Editor | Font.
- В новой версии IDE появилась стандартная светлая тема, которая выглядит одинаково во всех операционных системах, — IntelliJ Light.
- Обновлен дизайн полей Find и Find in Path.
Фреймворки и веб
- IntelliJ IDEA 2020.1 Ultimate предоставляет поддержку Selenium, фреймворка для тестирования веб-приложений, через новый плагин Selenium UI Automation Testing. Плагин поддерживает самые популярные JVM-фреймворки для UI-тестирования и библиотеки генерации отчетов о тестировании: Selenium, Selenide, Geb, Serenity BDD и Allure Framework. Читайте отдельный большой пост про поддержку Selenium (англ.)
- В версии 2020.1 мы расширили поддержку фреймворка Spring WebFlux. IDE теперь корректно взаимодействует с `Rendering` API, поэтому работает автодополнение и переход к связанным представлениям. А еще мы добавили маппинги запросов, поэтому, если в вашем приложении WebFlux включен Actuator, вы можете получить доступ к маппингам в окне Run.
А еще:
- Добавлены автодополнение, навигация, рефакторинг Rename (Shift+F6) для JMS и Spring Messaging API.
- Новая версия IDE различает Spring профили в выражениях и позволяет применять к ним умные действия, например Find Usages (Alt+F7) или Rename.
- Для Micronaut добавлены автодополнение параметров в файлах конфигурации, а также навигация и быстрый просмотр документации.
- Добавлены инспекции для RxJava.
- Теперь можно создавать проекты Quarkus и MicroProfile с помощью мастера создания проектов.
- Добавлено распознавание фрагментов кода для R2DBC, Vert.x SQL Clients, Apache Spark SQL, Apache DB Utils и других библиотек.
- Появилась интеграция со Swagger Codegen — мощным инструментом для создания серверных заглушек, клиентов API и документации.
- Появилась навигация из файлов HTTP-запроса прямо к соответствующим сервисам.
- Тысяча и одно улучшение для JavaScript, про которые можно прочитать подробно в отдельном хабропосте.
Но и это еще не все
В новой версии улучшены инструменты баз данных (отдельный хабропост тут), поддержка Scala, Docker и Kubernetes (пост на англ.). А еще есть разные небольшие, но классные изменения, например возможность хранить конфигурации запуска в папках проекта и параллельное отображение окон терминала.
На этом все! Еще раз напомню, что подробнее обо всем вышесказанном можно прочитать на странице What’s new на нашем сайте.
Команда IntelliJ IDEA