Интерактивные подсказки в отладчике, больше возможностей Java 15, поддержка Git-стейджинга и многое другое — представляем новые возможности IntelliJ IDEA 2020.3
Начальный экран IntelliJ IDEA выглядит по-новому. Теперь там есть четыре вкладки: Projects для управления проектами, Customize для настройки интерфейса IDE, Plugins для установки плагинов и Learn IntelliJ IDEA для быстрого доступа к справке и обучающим материалам.
Откройте страницу Learn IntelliJ IDEA прямо с начального экрана. Там вы найдете практические уроки и ссылки на полезные ресурсы. Нажмите Start Learning, чтобы последовательно изучить различные функции IDE. Следуйте инструкциям в окне Learn, чтобы проверить свои знания на реальных примерах кода.
Цветовую схему IntelliJ IDEA теперь можно синхронизировать с темой вашей операционной системы. Для этого выберите опцию Sync with OS в меню Settings / Preferences | Appearance & Behavior | Appearance. Нажмите на значок шестеренки рядом с Sync with OS, чтобы выбрать предпочтительную тему.
Файлы, доступные только для чтения, и файлы из внешних библиотек теперь по умолчанию открываются в удобном виде: комментарии выглядят как форматированный текст, а в коде включены лигатуры, чтобы его было проще читать. Настроить режим чтения можно в меню Settings / Preferences | Editor | Reader Mode.
Мы улучшили взаимодействие с IDE в режиме LightEdit. Чтобы открыть файл в режиме LightEdit из командной строки, введите -e
(--edit
), а затем имя файла, который нужно открыть, или просто -e
без имени файла — тогда откроется предыдущий сеанс. Из строки состояния в окне LightEdit теперь можно перейти ко всем функциям IDE. Подробнее
Теперь при нажатии Alt+Enter IDE показывает варианты исправления ошибок правописания. Кроме того, для проверки стиля и грамматики мы начали использовать новую версию движка LanguageTool, который теперь поддерживает еще более десятка новых языков.
В диалоге Search Everywhere появилась вкладка Git. Теперь там можно искать хэши и сообщения коммита, теги и ветки. А еще в строке поиска работает простой калькулятор.
Теперь по клику на файл его содержимое можно увидеть во вкладке предпросмотра. При открытии вкладки имя файла будет указано курсивом. Если вы начинаете редактировать файл, вкладка превращается в обычную. Если один раз кликнуть по другому файлу, он откроется в той же вкладке вместо предыдущего. Чтобы включить эту функцию, нажмите на значок шестеренки на панели Project и выберите опцию Enable Preview Tab.
Мы добавили панель со смайлами для Linux 🥳. Чтобы ее открыть, нажмите Ctrl+Alt+;. Можно фильтровать смайлы по категориям, искать по названию, менять цвет кожи. На эмодзи-панели полностью поддерживается навигация с клавиатуры.
Во всплывающем окне IntelliJ IDEA сообщит вам о выходе обновления для JDK. Можете сразу установить его или проигнорировать оповещение.
Мы упростили извлечение Java-методов. Просто нажмите ⌥⌘M на macOS или Ctrl+Alt+M на Windows и Linux или выберите Refactor / Extract / Introduce / Method… — IDE сразу же выполнит рефакторинг.
Благодаря новым параметрам переименования, которые отображаются в подсказке, теперь есть три опции: переименовать в комментариях, строках или в текстовых вхождениях. Чтобы вызвать подсказку, нажмите ⇧F6 (macOS) или Shift+F6 (Windows и Linux), а затем Tab. Вы можете изменить сочетание клавиш для действия Show Options Popup for In-place Refactoring в разделе Settings / Preferences | Keymap.
Теперь, если вы хотите разбить поле редактора горизонтально либо вертикально для работы с двумя вкладками одновременно, просто перетащите нужные вкладки в редактор. А с помощью действия Open in Right Split можно разделить редактор вертикально при открытии файла. Вы можете вызвать это действие из окна Project, Recent Files, Search Everywhere и с панели навигации.
Закрепленные вкладки теперь обозначаются значком булавки. Кликните по нему, чтобы открепить вкладку. Вы также можете закреплять и откреплять вкладки, перетаскивая их на другие закрепленные и незакрепленные файлы. Если у вас часто бывает открыто много вкладок, можете собрать все закрепленные вкладки в отдельный ряд: выберите опцию Show pinned tabs in a separate row в меню Settings / Preferences | Editor | General | Editor Tabs.
Мы улучшили интерфейс Markdown-редактора. Чтобы настроить формат Markdown, перейдите в Settings / Preferences | Editor | Code Style | Markdown. Нажмите ⌘+Alt+L на macOS или Ctrl+Alt+L на Windows или Linux, чтобы применить форматирование. Кнопка Auto-Scroll Preview в правом верхнем углу редактора синхронизирует прокрутку редактора и панели предварительного просмотра. We’ve also added support for Mermaid.js.
Теперь вы можете выбрать IntelliJ IDEA в качестве приложения по умолчанию для открытия файлов. Нажмите на кнопку Associate file types with IntelliJ IDEA в разделе Preferences | Settings / Editor / File Types. В появившемся диалоге выберите расширения файлов, которые вы хотите открывать в IDE. Если вы используете macOS, потребуется перезагрузить компьютер, чтобы применить эти изменения.
В разделе Preferences / Settings | Editor | File and Code Templates, теперь можно добавить шаблон, который создает сразу несколько файлов. Сначала нажмите +, чтобы создать шаблон. Затем, чтобы добавить в него еще один файл, кликните на значок Create Child Template File рядом с плюсом. В поле File name вы можете ввести паттерн для создания имени файла и пути с использованием переменных, перечисленных в разделе Description.
Когда приложение запущено в режиме отладки, нажмите на переменную, чтобы получить подсказку с указанием связанных полей, значения которых можно изменить. Нажмите Create Renderer внутри подсказки, чтобы открыть диалог, в котором можно настроить отображение значений во всех представлениях отладчика.
Мы добавили новый тип watch expressions, которые связаны с определенным контекстом и отображаются прямо в редакторе. Чтобы создать такое выражение, выберите Add as Inline Watch во всплывающей подсказке, Add Inline Watch в контекстном меню или нажмите на переменную в редакторе правой кнопкой мыши. Вы можете управлять inline watches в новом узле Inline Watches на вкладке Variables в окне Debug.
Базовые возможности профилирования теперь доступны во время работы отладчика. Новые функции профилирования вызываются через контекстное меню в окне Debug. Первая, Show referring objects, находит кратчайший путь от объекта к корням сборщика мусора. Вторая, Calculate retained size, вычисляет общее количество памяти, которое освободится при удалении объекта.
Теперь на каждый сеанс отладки для задачи Gradle открывается только одна вкладка. В ней отображаются фреймы, переменные, а также вывод консоли. Элементы управления отладчиком теперь работают правильно. Если вы хотите вернуться к предыдущей логике отладки, снимите галочку напротив опции Reuse Gradle debug session for forked processes в разделе Edit configurations….
Теперь в окне Profiler можно присоединить профилировщик к работающему приложению. В списке запущенных Java-процессов нажмите Enter для вызова действия Attach Profiler to a Process и выберите интегрированный инструмент, который хотите использовать. В области Recent Snapshot можно быстро получить доступ к любым снэпшотам, созданным ранее.
Поиск по флейм-графу стал удобнее: там появилось видимое поле поиска, стрелки для быстрой навигации, а также фильтр, который позволяет искать по всему графу или только в определенном поддереве.
Открыть любой файл .jfr
или .hprof
теперь можно несколькими способами: перетащить его в редактор, использовать меню File | Open или дважды кликнуть по файлу на панели Project.
Теперь можно профилировать локальные конфигурации запуска Maven и Tomcat так же, как любые другие конфигурации запуска. Кликните правой кнопкой мыши по элементу, который вы хотите профилировать, и выберите одну из опций: CPU, Allocation или Java Flight Recorder.
В новой версии появилась поддержка Git-стейджинга. Чтобы ее включить, перейдите в Settings / Preferences | Version Control | Git и отметьте галочкой опцию Enable staging area. Нажмите на значок «+», чтобы добавить файлы в новый узел Staged в окне Commit. Вы также можете добавлять файлы на стейджинг через поле редактора или вкладку Diff. Подробнее
Меню VCS теперь называется по имени системы контроля версий, которую вы используете. Еще мы убрали из него все действия, кроме самых актуальных. Если у вас в проекте используется только Git, меню VCS будет выглядеть, как на картинке выше.
Теперь IDE автоматически исправляет недопустимые символы в именах веток. А в контекстном меню текущей ветки отображаются связанные действия. Для удаленных ветвей мы переименовали действия Merge into Current и Rebase Current onto Selected в Pull into Current Using Merge и Pull into Current Using Rebase соответственно.
Мы изменили интерфейс конфигураций запуска/отладки, сделав его более понятным, и разместили наиболее часто используемые настройки на одном экране. Обязательные поля содержат метки и расположены в том же порядке, что и в командной строке. Если нужно настроить другие параметры, нажмите Modify options.
IntelliJ IDEA 2020.3 позволяет сохранять шаблоны конфигурации запуска в виде XML-файлов и делиться ими с коллегами через Git или другую систему контроля версий. Перейдите в Edit Configurations…, разверните узел Templates, выберите шаблон конфигурации, отметьте галочкой опцию Store as project file и укажите, куда следует сохранить шаблон.
IntelliJ IDEA 2020.3 поддерживает Code With Me (EAP) — наш новый сервис для парного программирования и совместной разработки. С его помощью вы и ваша команда можете совместно работать над проектами прямо из своих IDE. Чтобы попробовать Code With Me, установите плагин (Preferences / Settings | Plugins | Marketplace). Подробнее о Code With Me
Мы добавили новое действие для преобразования записей (records) в классы и наоборот. Это может быть полезно, если вы хотите откатить назад вашу кодовую базу. Читайте в нашем блоге, как и когда использовать записи.
In this release, we’ve added completion, code insight, and refactorings for sealed classes. Когда вы используете модификатор sealed, вы объявляете класс как sealed class и можете указать, какие другие классы он может расширять и каким классам следует запретить это делать. Подклассы могут быть final, non-sealed или sealed. Примеры того, как это можно использовать, вы найдете в нашем блоге.
Варианты автодополнения стали более контекстно-зависимыми благодаря технологии машинного обучения, которая помогает их сортировать и показывает в первую очередь самые актуальные. Чтобы оценить работу нового механизма сортировки, отметьте галочкой опцию Mark position changes in the completion popup в меню Settings / Preferences | Editor | General | Code Completion.
Если в ваших файлах используется механизм шебанг, IntelliJ IDEA автоматически определит это и откроет их как надо. Для файлов с шебангом (#!
) также работает подсветка и анализ кода.
Мы добавили несколько инспекций, которые помогут вам улучшить код. Пожалуй, главная из них — это Commented out code. Она позволяет удалять комментарии и раскомментировать строки. О других новых инспекциях читайте в нашем блоге.
Если вы создаете класс с нуля, после объявления public автодополнение теперь предлагает варианты: класс, интерфейс, перечисление или запись. Если вы используете методы String.toUpperCase
или String.toLowerCase
, IntelliJ IDEA предложит использовать Locale.ROOT. А если вы собираетесь вызвать String.getBytes()
, IDE предложит использовать кодировку UTF_8.
Теперь возможно межъязыковое преобразование, то есть вы можете встраивать в Kotlin элементы из Java. Также можно использовать inline-рефакторинг для scope-функций also, let, run, with и apply. Мы улучшили встраивание лямбда-выражений: IDE более тщательно анализирует их синтаксис и правильно форматирует.
Мы добавили поддержку структурного поиска и замены (SSR) для Kotlin. Вы можете находить и заменять фрагменты кода с учетом синтаксиса и семантики исходного кода. Фильтры для переменных помогут ограничить область поиска.
Даты выхода обновлений плагина Kotlin IDE теперь синхронизированы с выпуском новых версий IntelliJ IDEA. Кроме того, мы переместили Kotlin-плагин в новый репозиторий, объединенный с кодовой базой IntelliJ IDEA, чтобы минимизировать время применения платформенных изменений.
В этой версии мы значительно улучшили окно Endpoints, которое показывает как клиентские, так и серверные API для протоколов HTTP и WebSocket. Теперь конечные точки сгруппированы по модулям и можно сделать список более компактным. Работает полнофункциональный поиск с фильтрами, автодополнением и возможностью искать по нескольким параметрам. Можно прочитать документацию для каждой конечной точки в отдельной вкладке. Если у конечных точек есть связанные URL-адреса, вы можете посмотреть представление Open API и получить доступ к специальному HTTP-клиенту.
Экспортировать HTTP-запрос в cURL теперь можно из редактора HTTP-запросов: нажмите Alt+Enter и выберите опцию Convert to cURL and copy to clipboard.
Автодополнение URL-адресов стало более информативным: отображаются иконки фреймворков, HTTP-методы и расположение исходных классов или файлов, в которых объявлена конечная точка. Устаревшие URL-адреса перечеркнуты.
Теперь есть быстрый доступ к некоторым действиям для URL: просто нажмите на значок глобуса рядом с URL-адресом. Пока что это работает для Spring MVC, WebFlux, Feign Client, JAX-RS, Micronaut и Retrofit.
Теперь анализ кода работает для Spring MVC Functional Routing, RestOperations, Spring WebTestClient и Spring Reactive WebClient. Мы также отображаем объявленные с ними конечные точки. А еще добавили автодополнение и навигацию для проектов Kotlin Spring Security.
Если вы все еще используете HTTP-запросы в старом формате HTTP-клиента, можете легко преобразовать их в новый формат, кликнув Convert request to the new format наверху открытого запроса. Это также можно сделать в редакторе HTTP-запросов или через контекстное меню в окне Project.
IDE значительно лучше понимает код в различных случаях, в том числе когда вы хотите сослаться на внешние определения с помощью ключевого слова $ref
. Еще одно важное обновление — поддержка Swagger Hub, чтобы вы могли открывать в окне Endpoints как общедоступные, так и частные спецификации из Swagger Hub. Кроме того, интерфейс Swagger теперь синхронизируется с темой Darcula.
Новые проекты Quarkus и Micronaut включают в себя автоматически созданные конфигурации запуска, а значит, вы можете сразу запускать и отлаживать свое приложение. Если вы решите поменять конфигурацию Quarkus в Edit Configurations, в разделе Environment вы увидите настройки, применимые только к Gradle или Maven, в зависимости от того, какой фреймворк используется для сборки в вашем проекте.
В IntelliJ IDEA 2020.3 работает автодополнение для предопределенных методов, которые вы используете при создании интерфейсов репозитория. Мы также добавили поддержку аннотации Micronaut @Query
, которая помогает при создании пользовательских запросов. С ее помощью можно использовать язык JPQL для фрагментов кода.
Сервер компиляции Scala теперь компилирует независимые модули параллельно. Мы скорректировали стандартные параметры виртуальной машины для поддержки до 4 потоков компиляции, что может значительно ускорить процесс. Если на вашем компьютере много ядер процессора и оперативной памяти, можете поменять значения по умолчанию, чтобы выполнять компиляцию еще быстрее.
Чтобы повысить эффективность параллельной компиляции, полезно оптимизировать структуру модулей проекта и параметры виртуальной машины на сервере компиляции. В этом вам помогут диаграммы компиляции. Теперь вы сразу можете понять, есть ли потенциал для оптимизации. Например, с помощью диаграммы можно определить, какие модули замедляют процесс, какие есть возможности для увеличения числа потоков и в каких случаях необходимо скорректировать максимальный размер кучи. С новыми возможностями известный мем про компиляцию больше не так актуален.
Scala-плагин теперь может комбинировать префиксы пакетов IntelliJ IDEA с цепочками предложений пакетов и относительными импортами Scala. Сами по себе эти понятия довольно специфичны, а их комбинация, как ни странно, обеспечивает интуитивно понятную и согласованную систему (подробнее). Больше не придется мучаться с цепочками пустых директорий или повторять один и тот же префикс пакета снова и снова. Вы сможете легко поддерживать порядок в своих директориях и пакетах.
Scala-плагин уже поддерживает JUnit, ScalaTest, uTest и Specs2. Пришло время пополнить этот список — мы добавили поддержку MUnit со всей привычной функциональностью.
Scala-плагин уже довольно давно поддерживает возможности еще не вышедшей Scala 3, и мы стараемся не отставать от изменений в языке. Particularly, the Scala plugin now understands the new syntax for main methods. Написать Hello World теперь проще некуда!
Мы интегрировали TypeScript language service с окном Problems и убрали окно TypeScript. Это значит, что вы можете просматривать все ошибки в одном месте. Действия, которые ранее были доступны в окне TypeScript, теперь можно найти в отдельном виджете для строки состояния.
Реализовали не все React-компоненты? Просто поставьте курсор на нужный компонент, нажмите Alt+Enter и выберите опцию Create class/function component — IntelliJ IDEA создаст необходимую конструкцию кода за вас.
Узнайте, что нового в WebStorm — там вы найдете подробную информацию об улучшениях для JavaScript, вошедших в IntelliJ IDEA 2020.3.
Теперь вы можете загружать логи на свой компьютер: просто нажмите Download Log на боковой панели окна Services. По умолчанию поды сохраняются в Scratches и Consoles | Kubernetes Files | <context> | <namespace> | pods, но вы можете поменять настройки в разделе Pod Logs (Settings / Preferences | Build, Execution, Deployment | Kubernetes).
На боковой панели в окне Services есть два новых действия: Open Console для подключения контейнеров, включающих консоли, и Run Shell, чтобы запускать Shell для под-контейнеров. Для быстрого перехода к настройкам Pod Shell нажмите на значок гаечного ключа.
Теперь можно автоматически загружать CRD-схемы из активного кластера. Для этого перейдите в меню Preferences / Settings | Languages & Frameworks | Kubernetes и отметьте галочкой опцию Use API schema from an active cluster.
Теперь можно использовать SQL для запросов к MongoDB. IntelliJ IDEA 2020.3 supports SELECT queries with clauses such as JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET, and all available MongoDB functions except map, reduce, filter, and let. Подробнее об SQL для MongoDB читайте в нашем блоге.
IntelliJ IDEA теперь поддерживает сервис Couchbase Query. Еще мы добавили два новых формата экспорта. One-Row скопирует выделенные значения в одну строку через запятую, а SQL-Insert-Multirow сгенерирует один INSERT для нескольких строк.
Есть еще несколько нововведений, которые пригодятся в повседневной работе: