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

IntelliJ IDEA 2020.1 включает в себя поддержку Java 14 и новые возможности для фреймворков, функцию анализа потоков данных в отладчике, новый режим LightEdit, автоматическую загрузку и настройку JDK и многое другое.

Java

Поддержка Java 14: записи и сопоставление с образцом

IntelliJ IDEA 2020.1 поддерживает новые возможности Java 14. IDE не только предоставляет все функции анализа кода для записей (records), но и позволяет быстро создавать новые записи, их конструкторы и компоненты, а также предупреждает об ошибках. Кроме того, есть поддержка сопоставления с образцом для оператора instanceof, включая новую инспекцию и быстрое исправление, которое заменяет избыточные выражения instanceof+cast на лаконичные переменные-образцы.

Подробнее о поддержке Java 14 в IntelliJ IDEA

Загрузка JDK

Загрузка JDK через IDE

Больше не нужно искать необходимый JDK в интернете. При создании проекта в IntelliJ IDEA 2020.1 можно скачать и установить JDK прямо через IDE. При открытии загруженного проекта IDE проверит, есть ли на вашем компьютере подходящий JDK, и, если нет, предложит его скачать.

Новые инспекции для Java

Новые инспекции для Java

С каждой новой версией IntelliJ IDEA мы расширяем возможности статического анализа кода. Этот релиз не исключение. Помимо улучшений, мы добавили несколько новых инспекций. Они проверяют корректность использования заглавных букв в шаблонах SimpleDateFormat, анализируют случаи форматирования дат, ищут избыточные вызовы методов, находят и предлагают удалить лишние экранирующие символы в строковых литералах.

Редактор

Режим LightEdit

В IntelliJ IDEA 2020.1 появился долгожданный режим LightEdit. Теперь вы можете быстро вносить изменения в отдельные файлы в облегченном редакторе, не создавая и не загружая проект. Открывать файлы в режиме LightEdit можно из командной строки, с начального экрана IDE или из файлового менеджера операционной системы. Чтобы переключиться из LightEdit в режим проекта, используйте действие Open File in Project (Alt+Enter).

Подробнее о режиме LightEdit

Rename и Change Signature без модального диалога

Rename и Change Signature без модального диалога

Чтобы изменить сигнатуру метода или класса при разработке на Java или Kotlin, вам больше не придется иметь дело с громоздким модальным диалогом. Просто измените параметры класса или метода, а затем используйте новый значок на поле редактора или Alt+Enter, чтобы просмотреть и применить изменения к объявлению класса/метода и ко всем его использованиям.

Подробнее об обновленных рефакторингах Rename и Change Signature

Рендеринг Javadocs в редакторе

Читать Javadocs в редакторе весьма неудобно из-за обилия тегов, через которые приходится продираться, особенно если нужно перейти по ссылке. Поэтому мы добавили рендеринг Javadocs прямо в редакторе. Включить эту функцию можно в меню Help | Find actions | Render documentation comments on file opening.

Подробнее о рендеринге Javadocs

Code Vision

Мы сделали первые шаги к реализации Code Vision — функции, которая помогает сосредоточиться на коде и при этом получать необходимую информацию о нем. В IntelliJ IDEA 2020.1 Code Vision умеет показывать использования и реализации символов Java. Чтобы включить эту функцию, перейдите в Preferences / Settings | Editor | Inlay Hints | Java, выберите Code Vision и поставьте нужные галочки в Show hints….

Улучшенная панель навигации

Улучшенная панель навигации

В IntelliJ IDEA 2020.1 появился еще один простой способ навигации по проекту. Вы можете перейти к нужной строке файла без прокрутки: на панели навигации теперь отображаются методы в классах и интерфейсах Java. Если вы не используете панель навигации, самое время включить ее в меню View | Appearance | Navigation Bar.

Режим полного погружения

Режим полного погружения

Мы добавили новый режим погружения Zen. Он помогает полностью сосредоточиться на коде и ни на что не отвлекаться. В этом режиме редактор занимает весь экран, а все остальные элементы интерфейса скрыты — не нужно одновременно включать режимы Distraction Free и Full Screen. Просто выберите опцию Enter Zen Mode в меню View | Appearance и программируйте, забыв об всем вокруг.

Умная проверка правописания

Умная проверка правописания

В IntelliJ IDEA 2020.1 встроен плагин Grazie — универсальный инструмент для проверки орфографии, грамматики и стиля письма. Теперь IDE заботится не только о коде. Плагин поддерживает 16 естественных языков и поможет вам не допускать ошибок в строковых литералах, комментариях, сообщениях коммитов, Javadocs и т.д. По умолчанию Grazie проверяет только текстовые файлы, но мы рекомендуем также включить проверку Java-файлов: Settings/Preferences | Editor | Proofread | Grammar.

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

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

Вы можете посмотреть определения типов переменных, полей, методов и других символов, не меняя фокус ввода. Поместите курсор на нужный символ и выберите View | Quick Type Definition в главном меню. IntelliJ IDEA покажет информацию о типе во всплывающем окне, из которого можно открыть исходный файл и перейти к редактированию кода.

Отладчик

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

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

В отладчике JVM теперь поддерживается анализ потоков данных. Он предсказывает, как будет выполняться программа. Когда выполнение приложения прерывается на точке останова, IDE производит анализ потоков данных на основе текущего состояния программы и проверяет, что будет дальше. Чтобы включить анализ, перейдите в меню Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Java.

Статья об интеграции анализа потоков данных в отладчик

Прикрепленные поля

Прикрепленные поля

Теперь можно закрепить любое поле объекта в верхней части списка полей. Это удобно, когда у объекта так много полей, что трудно найти нужное.

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

Фокус на вызовах методов Ultimate

Фокус на вызовах методов Ultimate

Поддержка профилирования приложений в IntelliJ IDEA постоянно развивается. В этой версии появилось несколько новых возможностей: Focus on Subtree (показать поддерево), Focus on Call (показать вызов), Exclude Subtree (исключить поддерево) и Exclude Call (исключить вызов). С помощью этих опций вы можете подробно рассмотреть выбранный вызов метода и отфильтровать ненужные.

Сворачивание рекурсивных вызовов Ultimate

Сворачивание рекурсивных вызовов Ultimate

Профилировщик IntelliJ IDEA теперь обнаруживает рекурсивные вызовы, когда один и тот же метод вызывается выше по стеку. IDE позволяет убрать такие вызовы из поддерева, чтобы вы могли сосредоточиться на методах, которые потребляют большую часть ресурсов, и на вызовах, которые они выполняют. Рекурсивные вызовы отмечены специальным значком на вкладке Call Tree окна Profiler.

Начальная поддержка снэпшотов HProf Ultimate

В IntelliJ IDEA 2020.1 теперь можно открывать файлы дампов памяти .hprof, которые помогают обнаружить утечки памяти и найти способы оптимизировать использование памяти. Вы увидите сводную информацию: общий размер файла, количество объектов и трассировки стеков. Также будут перечислены все корневые объекты, сгруппированные по классам, все классы, отсортированные по количеству экземпляров или размеру, и все экземпляры классов с возможностью просмотра значений полей. Чтобы открыть hprof-файл, перейдите в раздел Help | Find action и введите «hprof» для поиска действия Open Hprof Snapshot. Мы еще работаем над этой функциональность и планируем улучшить ее в следующих версиях.

Система контроля версий

 Новое окно коммитов

Новое окно коммитов

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

Обновленный диалог перебазирования коммитов

Мы изменили диалог Interactively Rebase from Here, чтобы сделать его действительно интерактивным. Раньше этот диалог представлял собой список действий, которые можно применить к выбранным коммитам. Теперь в нем есть диаграмма, показывающая, какие действия были применены к каждому коммиту, отображаются сведения о коммитах, можно просмотреть различия и отменить изменения, если необходимо.

Установка Git через IDE

Установка Git через IDE

Больше не нужно заранее устанавливать Git вручную. Когда вы клонируете существующий Git-репозиторий, IntelliJ IDEA будет искать исполняемый файл Git на вашем компьютере и, если не найдет, предложит загрузить и установить программу.

Окно Branches

  • В окне Branches появилось поле поиска: ищите в нем существующие удаленные и локальные ветки.
  • Кнопка Refresh теперь обновляет существующие удаленные ветки.
  • В строке состояния появились индикаторы входящих (синие) и исходящих (зеленые) коммитов.
  • На вкладке Log отображается список веток.

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

JetBrains Mono

JetBrains Mono

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

Светлая тема для всех платформ

В IntelliJ IDEA 2020.1 появилась стандартная светлая тема, которая выглядит одинаково во всех операционных системах, — IntelliJ Light. Вы всегда можете вернуться к одной из привычных тем в меню View | Quick Switch Scheme | Theme, но мы настоятельно рекомендуем попробовать IntelliJ Light.

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

Spring WebFlux Ultimate

Мы всегда следим за тенденциями в мире разработки и стараемся поддерживать самые популярные технологии. Поэтому в версии 2020.1 мы расширили поддержку фреймворка Spring WebFlux. Мы добавили маппинги запросов, поэтому, если в вашем приложении WebFlux включен Actuator, вы можете получить доступ к маппингам в окне Run, чтобы отслеживать свое приложение и взаимодействовать с ним. Кроме того, IntelliJ IDEA теперь корректно взаимодействует с API рендеринга, поэтому работает автодополнение и переход к связанным представлениям. Вы также можете в полной мере воспользоваться функциями анализа кода, такими как Find Usages (Alt+F7) и рефакторинг Rename (Shift+F6).

Подробнее о поддержке Spring WebFlux

Профили Spring Ultimate

Раньше IntelliJ IDEA воспринимала выражения с профилями Spring просто как строки. В новой версии, IDE различает профили в выражении и позволяет применять к ним действия, например Find Usages (Alt+F7) или рефакторинг Rename (Shift+F6). Мы также улучшили всплывающее окно Change Active Spring Profiles и сделали автодополнение для существующих профилей.

Selenium

Selenium Ultimate

IntelliJ IDEA 2020.1 Ultimate предоставляет начальную поддержку Selenium, фреймворка для тестирования веб-приложений, через новый плагин Selenium UI Automation Testing. Плагин поддерживает самые популярные JVM-фреймворки для UI-тестирования и библиотеки генерации отчетов о тестировании: Selenium, Selenide, Geb, Serenity BDD и Allure Framework.

 

Поддержка Selenium включает в себя новый мастер создания проектов, подсветку, инспекции и автодополнение кода в тестах для Java, Kotlin и Groovy, валидацию различных файлов конфигурации и иконки в редакторе для быстрой навигации.

Подробнее о поддержке Selenium в IntelliJ IDEA

JMS и Spring Messaging API Ultimate

Для приложений, написанных на Java и Kotlin, IntelliJ IDEA 2020.1 предоставляет полный набор функций анализа кода для JMS и Spring Messaging API. К ним относятся автодополнение, навигация, рефакторинг Rename (Shift+F7), добавление ссылок (Alt+Enter) и многое другое.

Micronaut Ultimate

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

RxJava Ultimate

Мы добавили ряд полезных инспекций для RxJava. IntelliJ IDEA обнаружит неиспользуемые publishers и предупредит, если лямбда-функция возвращает null. Она также подсветит вызовы методов, блокирующие поток, и слишком длинные цепочки фильтров.

Создание проектов Quarkus и MicroProfile

Quarkus и MicroProfile Ultimate

Теперь можно создавать проекты Quarkus и MicroProfile с помощью мастера создания проектов, который поможет все настроить.

Языковые вставки из внешних SQL-библиотек

Поддержка SQL-библиотек Ultimate

IntelliJ IDEA теперь корректно обрабатывает фрагменты кода на SQL из популярных библиотек, которые раньше воспринимала как обычные строки. Кроме того, работает автодополнение и навигация для SQL-запросов и полей. Поддержаны R2DBC, Vert.x SQL Clients, Apache Spark SQL, Apache DB Utils и другие библиотеки.

Swagger Codegen

Swagger Codegen Ultimate

IntelliJ IDEA 2020.1 интегрирована со Swagger Codegen — мощным инструментом для создания серверных заглушек, клиентов API и документации, который поддерживает многие языки программирования. Мы подготовили специальную конфигурацию запуска, в которой вы можете указать путь для создания файлов, путь к папке шаблонов .mustache, язык и другой JRE в случае проблем совместимости. Чтобы Swagger Codegen начал свою работу, просто откройте файл OpenAPI/Swagger, настройте несколько параметров и нажмите Run.

Удаленные спецификации Ultimate

IntelliJ IDEA 2020.1 знает, как работать со спецификациями openapi/swagger. Например, для них работает автодополнение. Вам нужно просто ввести URL-адрес спецификации в настройках, и IDE будет подставлять URL-пути на лету. Вы также можете создавать свои спецификации так же, как вы обычно создаете классы и интерфейсы: File | New | OpenAPI Specification.

HTTP-клиент

Автодополнение и не только Ultimate

HTTP-клиент в IntelliJ IDEA 2020.1 стал умнее. Теперь корректно работает автодополнение для переменных пути и URL-адресов, а также навигация из файлов HTTP-запроса прямо к соответствующим конечным точкам. Мы подготовили кое-что для пользователей Micronaut и Spring: для методов-обработчиков запросов в редакторе появился значок URL-маппингов. Используйте его, чтобы создать или открыть существующий файл HTTP-запроса и перейти к HTTP-клиенту.

Docker

Упрощенное извлечение образов

Упрощенное извлечение образов

Чтобы вам было проще извлекать образы из Docker Registry, мы переработали интерфейс и избавились от модального диалога. Теперь достаточно кликнуть по узлу Images на левой панели окна Service, и справа откроется вкладка Images Console, из которой вы сможете легко извлечь образы. Для образов также работает автодополнение.

Kubernetes

Команда Apply для файлов Kubernetes

Команда Apply для файлов Kubernetes Ultimate

Если вам нужно обновить кластер Kubernetes, чтобы он соответствовал состоянию, определенному в локальных файлах, можете вызвать команду Apply прямо из окна редактора.

Другие улучшения для Docker и Kubernetes

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

Импорт изменений из Maven и Gradle

Импорт изменений из Maven и Gradle

В IntelliJ IDEA 2020.1 мы добавили небольшое, но важное обновление для пользователей Maven и Gradle. Вместо автоматического импорта теперь справа в верхней части редактора появляется плавающее уведомление. Используйте это уведомление или новое сочетание клавиш (Ctrl+Shift+O на Windows и Linux /Shift+Cmd+I на Mac), чтобы загрузить изменения после обновления файла сборки. Более того, если IntelliJ IDEA обнаружит изменения в файле сборки, сделанные не в IDE, а, например, в VCS, она автоматически обновит связанные проекты.

Scala

Поддержка Scala 3

Поддержка Scala 3

Раз Dotty суждено стать Scala 3, мы начали работать над полноценной поддержкой Scala 3. Плагин для Scala теперь включает в себя предварительную поддержку Scala 3, с новым синтаксисом, подсветкой ошибок, навигацией, информацией о типах и другими возможностями IDE.

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

Подробнее о поддержке Scala 3 в IntelliJ IDEA

Точная подсветка ошибок в функциональных литералах

Точная подсветка ошибок в функциональных литералах

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

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

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

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

Scala-плагин уже давно показывает неиспользуемые переменные и методы. Теперь он находит и неиспользуемые параметры. Параметры, на которые нет ссылок внутри методов или классов, выделены серым цветом.

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

Действие Smart Step Into

Действие Smart Step Into

В Scala несколько вызовов методов часто встречаются на одной строке. В таких случаях использовать Step Into в отладчике неудобно: нужно вручную заходить в каждый метод, прежде чем достигнуть желаемого.

В этой версии действие Step Into стало умнее. Просто выберите нужный метод, IDE сделает все за вас.

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

Мы улучшили поддержку протокола BSP. Теперь он работает стабильней и поддерживает больше проектов и инструментов сборки. Больше не нужно вручную устанавливать Bloop для импорта проектов sbt через BSP: Scala-плагин автоматически конвертирует такие проекты в формат Bloop. Отменить сборки BSP теперь можно в окне Build. Наконец, вы можете управлять соединениями BSP через специальный виджет.

JavaScript

Новые действия и инспекции

Новые действия и инспекции Ultimate

Новые действия и инспекции (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать код в optional chaining и/или nullish coalescing — синтаксис, появившийся в последних версиях JavaScript и TypeScript.

Поддержка Vuex и Composition API

Поддержка Vuex и Composition API Ultimate

Благодаря встроенной поддержке библиотеки Vuex и Composition API из Vue 3 создавать приложения Vue.js стало еще проще.

Узнайте, что нового в WebStorm — там вы найдете подробную информацию об улучшениях для JavaScript в IntelliJ IDEA 2020.1.

Базы данных

Базы данных

Улучшения для баз данных Ultimate

Теперь можно экспортировать данные в файлы Excel (.xlsx), просматривать данные в виде текста прямо в редакторе, создавать конфигураций запуска и многое другое.

Все подробности здесь: что нового в DataGrip 2020.1.

Терминал

Параллельное отображение сеансов терминала

Параллельное отображение сеансов терминала

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

Конфигурации запуска

Хранение конфигураций запуска в папках проекта

Теперь конфигурации запуска можно хранить в любой папке проекта, так вы сможете поделиться ими с коллегами по команде через управление версиями. Откройте диалог Run/Debug Configurations, выберите Store as project file справа вверху и нажмите на значок шестеренки. В появившемся всплывающем окне выберите, где хранить конфигурации.

Android

Поддержка Android Volley

Поддержка Android Volley

IntelliJ IDEA 2020.1 поддерживает библиотеку Android Volley. IDE обеспечивает автодополнение ссылок на URL-адреса и позволяет переходить к связанным ресурсам.

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