Теперь можно управлять пул-реквестами GitHub прямо из IntelliJ IDEA, просматривать полный список проблем с текущим файлом в специальном окне и быстро навигироваться по ошибкам и предупреждениям с помощью нового виджета. Если внесенные изменения привели к ошибкам в других файлах, IDE об этом сообщит. IntelliJ IDEA 2020.2 поддерживает Jakarta EE и предоставляет новые возможности для работы с Quarkus, Micronaut и OpenAPI.
Java 15 выйдет только в сентябре, но IntelliJ IDEA 2020.2 уже готова к этому. Мы улучшили поддержку записей (Records), и она вышла на второй этап preview. Кроме того, мы добавили базовую поддержку запечатанных классов (sealed classes). Ну и конечно, IntelliJ IDEA полностью поддерживает текстовые блоки.
Если при изменении сигнатуры класса, метода или поля во внешние файлы закралась ошибка, IDE сообщит вам об этом. Нажмите на подсказку, чтобы открыть окно со списком всех связанных проблем, возникших во внешних файлах.
IntelliJ IDEA позволяет находить и при необходимости заменять блоки кода, соответствующие заданному шаблону. Теперь можно создать несколько таких шаблонов и использовать их в качестве инспекций. Для этих инспекции вы можете указать уровень серьезности и добавить описание, а также включать их по отдельности.
В дополнение к анализу трассировки стека исключений в IntelliJ IDEA появилась функция анализа потоков данных. При нажатии на трассировку стека IDE направит вас к точному месту в коде, которое стало причиной исключения, и подскажет, почему это могло произойти.
Теперь IntelliJ IDEA еще лучше поддерживает Stream API. Вместо того, чтобы каждый раз вводить stream()
, а затем указывать нужную операцию, теперь можно сразу вводить имя метода, а IntelliJ IDEA автоматически подставит stream()
. Это работает для любых операций с потоками.
В IntelliJ IDEA 2020.2 рефакторинг Introduce Variable работает более гибко. Теперь можно выбрать разные варианты замены для разных случаев (раньше можно было заменить либо одно, либо все вхождения). IDE подсвечивает вхождения, которые будут заменены новой переменной, при наведении курсора на каждый из вариантов.
Больше не придется долго искать шаблоны для Java. В настройках Live Templates появился узел, который включает в себя все группы Java-шаблонов: plain, surround, other, output и iterations. Кроме того, есть отдельный узел для Groovy.
В новом окне Problems вы увидите список ошибок и предупреждений для текущего файла с описаниями проблем. Кликните правой кнопкой мыши по ошибке, чтобы перейти к проблемной строке, и исправьте ее с помощью Alt+Enter.
Новый виджет упрощает поиск предупреждений, ошибок и других проблем в коде и позволяет легко перемещаться между ними с помощью стрелок или F2. В нем можно выбрать, что следует подсвечивать: ничего, только ошибки или все проблемы.
Теперь можно заранее посмотреть, как будет выглядеть код после применения intention-действия. Нажмите Alt+Enter, чтобы выбрать доступное действие, а затем Alt+Space на macOS или Ctrl+Shift+I на Windows и Linux, чтобы посмотреть превью.
Встроенная проверка орфографии теперь работает намного быстрее, отфильтровывает неактуальные варианты замены и в первую очередь предлагает то, что подходит по контексту. Кроме того, IDE определяет язык файла по первой паре абзацев и предлагает включить соответствующую языковую модель.
Вся информация о пул-реквестах теперь доступна по щелчку мыши в специальном вертикальном окне инструментов. В главном окне редактора показаны обсуждения, и вы можете добавлять комментарии напрямую. В нижней части окна отображаются результаты проверок перед коммитом. Если у вас есть доступ к управлению пул-реквестами, вы можете их просматривать, назначать и объединять, читать и отправлять комментарии, а также принимать изменения прямо в IDE.
Мы обновили дизайн диалогов Merge, Pull и Rebase — взаимодействовать с ними стало удобнее. Теперь четко видно, какие Git-команды будут выполняться. Кроме того, добавлены новые параметры, например –rebase
в диалоге Pull и –no-verify
в диалоге Merge.
Теперь при сравнении двух веток, IntelliJ IDEA открывает списки их коммитов в одном представлении в редакторе. В отличие от окна VCS, в новом представлении достаточно места для полной информации о том, какие коммиты есть в каждой ветке и какие файлы затронуты изменениями.
Теперь можно выбрать несколько коммитов из локальной ветки и объединить их в один. Откройте вкладку Log в окне Git, выберите локальные коммиты и действие Squash Commits. Если вы решите изменить комментарий к коммиту, все изменения в этих коммитах будут помещены в один коммит вместе с обновленным комментарием. Кроме того, теперь можно удалять коммиты из Git-лога.
IntelliJ IDEA 2020.2 поддерживает Git, установленный в WSL2, для работы над проектами, расположенными в файловых системах Linux или Windows. Теперь при открытии проекта из WSL IDE автоматически переключится на Git в WSL и вы сможете использовать всю связанную функциональность.
Мы подготовились к сентябрьскому релизу Jakarta EE 9 и уже поддерживаем все технологии Jakarta EE, включая CDI, JPA, Batch, Bean Validation, JSF, JAX-RS, WebSocket, Servlets, JSP, JSON-P, JSON-B, Security, EJB и JTA.
Теперь можно создавать проекты Java EE 8 и Jakarta EE 9 с помощью мастера New Project. Новый проект Jakarta EE настраивается всего за несколько шагов: выберите версию Java, инструмент сборки, расширения и другие параметры.
Для упрощения работы с файлами конфигурации .properties и YAML в IntelliJ IDEA теперь работает автодополнение и подсветка синтаксиса, а неиспользуемый код окрашивается в серый цвет. Кроме того, прямо из файлов конфигурации можно перейти к настроенным bean-компонентам и наоборот.
Теперь в IntelliJ IDEA доступна удобная навигация по bean-компонентам и обновленные инспекции, которые идеально работают с упрощенным синтаксисом Quarkus. Кроме того, IDE поддерживает аннотации @DefaultBean, @AlternativePriority и вставки по квалификатору (без использования @Inject).
Благодаря интеграции с интерфейсом Swagger теперь доступен предпросмотр OpenAPI в редакторе IntelliJ IDEA. Это значительно упрощает тестирование.
IDE теперь может показывать структурные различия между спецификациями OpenAPI. Понимая особенности Swagger/OpenAPI, IntelliJ IDEA 2020.2 сравнивает структуру файлов JSON или YAML и предлагает посмотреть на обнаруженные различия. Для этого выберите опцию Compare Open API Specifications в контекстном меню или вызовите действие через Search Everywhere.
Еще одно полезное обновление мастера New Project: теперь в нем можно создавать проекты Micronaut. Быстрая пошаговая настройка позволяет приступить к работе над проектом в кратчайшее время.
Если в вашем приложении Micronaut используется асинхронная обработка данных через RabbitMQ или Kafka, это обновление для вас. Теперь работает автодополнение для имен и поиск использований, а также можно навигироваться по очередям и темам с помощью значков на поле редактора. Такой же набор функций поддерживается для Amazon SQS API.
Для упрощения создания и тестирования HTTP-запросов IntelliJ IDEA автоматически сгенерирует HTTP-запросы JAX-RS и MicroProfile, а затем откроет их во встроенном REST-клиенте. Вы также можете использовать intention-действия для генерации HTTP-запросов по любому URL-адресу в проектах Spring, JAX-RS, Retrofit, OkHttp и Micronaut.
В тестах REST Assured теперь работает автодополнение URL-адресов и навигация к соответствующим ресурсам.
Selenium-плагин теперь поддерживает интеграцию с Selenoid и предоставляет простой способ запуска нового тестового окружения прямо из файла browsers.json. При запуске Selenoid-контейнера автоматически извлекаются все необходимые образы.
Благодаря улучшенной механике просмотра, вам будет проще проанализировать динамическую память, понять, какие части кода используют большие объемы памяти, и обнаружить причины утечек. HPROF отображает рассчитанные сохраненные размеры объектов, кратчайшие пути к корням сборщика мусора, доминаторное дерево объектов (сохраненные объекты) и входящие ссылки.
Теперь можно ускорить индексирование, загружая индексы с другого компьютера, не создавая их локально. Используйте готовые индексы для JDK или создавайте свои и переносите их в нужную IDE. Просто установите плагин Shared Indexes. Подробнее
Продолжайте писать код, пока IntelliJ IDEA 2020.2 индексирует проект. Теперь во время индексирования работает автодополнение для Java и PHP.
Теперь можно воспользоваться функциями IDE прямо из терминала. Вы можете выполнять команды, подсвеченные в терминале, в соответствующем графическом интерфейсе IDE с помощью сочетания клавиш Ctrl+Enter/Cmd+Enter. Чтобы запустить выделенные команды в режиме отладки, используйте Ctrl + Shift + Enter / Cmd + Shift + Enter.
Подробнее об этой возможности читайте в нашем блоге.
IntelliJ IDEA 2020.2 теперь поддерживает Maven Wrapper, который автоматически устанавливает необходимую для вашего проекта версию Maven. Если Maven Wrapper установлен и настроен, IDE использует его автоматически и импортирует изменения, когда необходимо.
Раньше было обязательно использовать одну и ту же версию Maven во всех открытых проектах, а теперь можно указать определенную версию Maven для каждого проекта в отдельности.
Теперь вывод встроенного инструмента сборки отображается в окне Build, а не в окне Messages.
IntelliJ IDEA 2020.2 поддерживает автодополнение и навигацию для имен проектов в файлах build.gradle.
Например, можно быстро преобразовать цикл for с числовым индексом в перебирающий метод forEach. Кроме того, стало проще читать документирующие комментарии в файлах JavaScript и TypeScript: мы сделали рендеринг прямо в редакторе — теперь все выглядит четко и аккуратно.
В новой версии легко форматировать код с помощью Prettier. Просто отметьте галочкой опцию On code reformat в настройках, и IntelliJ IDEA будет использовать Prettier вместо встроенного форматера. По умолчанию это работает только для файлов .js, .ts, .jsx и .tsx, но вы можете добавить и другие типы файлов.
Работать с проектами Vue.js стало удобнее: мы добавили поддержку Nuxt.js и специальные настройки стиля кода.
В этой версии мы добавли несколько полезных инструментов для случаев, когда в ячейке содержится очень большое значение. Теперь можно просматривать и редактировать длинные значения на отдельной панели, которая поддерживает режим переноса строк (переключается на правой панели инструментов).
Просматривать и редактировать ячейки с типом boolean стало гораздо удобнее. Для ввода нужного значения (false
, true
, default
, null
, generated
или computed
) достаточно ввести первую букву: f
, t
, d
, n
, g
или c
. Если напечатать что-то другое, откроется выпадающий список.
Теперь результаты запросов к базе данных можно просматривать в редакторе. Для этого нажмите кнопку DML на панели инструментов.
Мы добавили начальную поддержку диалекта Google BigQuery. IDE обеспечивает подсветку и автодополнение запросов.
Раньше, несмотря на возможность просмотра implicits (даже отсутствующих) через View | Show Implicit Hints, импортировать их было непросто.
Новое действие Auto-import for implicits работает так же, как автоматический импорт неразрешенных ссылок. Автоматическое всплывающее окно даст знать об этой возможности, но вы можете его отключить и вызывать действие Import… через Alt+Enter (подробнее).
Scala-разработчикам часто приходится удалять и добавлять фигурные скобки. Чтобы упростить эту задачу, сначала мы добавили специальное intention-действие, но его нужно было вызывать вручную. Затем мы поддержали автоматическое добавление и удаление необязательных скобок.
В новой версии стало удобнее: фигурные скобки автоматически добавляются и удаляются на лету в зависимости от отступов. Это позволяет активно использовать отступы, сохраняя при этом скобки, даже в Scala 2. Просто не думайте о скобках — IDE все сделает за вас.
В Scala класс или типаж компаньона и объект-компаньон имеют особые отношения. Это уже давно было отражено на панели Project, но в остальном IntelliJ IDEA обращалась с компаньонами как с любыми другими классами или объектами.
Теперь в редакторе появились навигационные значки для компаньонов (настраивается в меню Settings | General | Editor | Gutter Icons). Вы также можете перейти к компаньону, вызвав действие Go To на ключевых словах class
, trait
или object
. Кроме того, для членов объектов-компаньонов работает автодополнение и их можно импортировать автоматически.
Комментарии Scaladoc легко редактировать, но не всегда удобно читать из-за обилия звездочек, тегов и макросов. Мы сделали рендеринг Scaladoc прямо в редакторе — теперь все выглядит четко и аккуратно (новый режим отображения включается в меню Editor | General | Appearance).
Мы также улучшили рендеринг Scaladoc во всплывающем окне Quick Documentation: абзацы, списки и макросы теперь отображаются корректно.
Автодополнение не только стало быстрее и точнее — мы добавили две абсолютно новые возможности. Во-первых, теперь можно сразу подставить и имя метода, и его аргументы, если в текущей области доступа присутствуют соответствующие значения.
Во-вторых, теперь вы можете применить статическую функцию к аргументу, используя точечную запись, которая может использоваться в сочетании с алгебраическими типами данных. Эта функциональность является частью Hoogle Completion — нашей попытки переосмыслить Hoogle в языке, который не использует систему типов Хиндли-Милнера (пока еще мы работаем над этим).
IntelliJ IDEA 2020.2 обеспечивает безопасное подключение к Docker на Windows, благодаря поддержке TLS-соединений с демоном Docker.
В настройках Preferences/Settings | Build, Execution, Deployment | Kubernetes теперь можно указать кастомный файл kubeconfig
. Также это можно сделать, нажав Show Settings… в окне Services при выборе корневого элемента Kubernetes. Вы можете указать файл kubeconfig
как для всех проектов, так и для одного. Другими словами, у каждого из ваших проектов может быть свой файл kubeconfig
.
Теперь работает автодополнение для объектов ConfigMaps/Secrets из текущего проекта и из кластера. В списке предлагаемых вариантов объекты из кластера выделены синим. Вы можете перейти от использования ConfigMap/Secret к соответствующему ресурсу ConfigMap/Secret в проекте или кластере. То же самое касается ключей ConfigMap/Secret.