В IntelliJ IDEA 2022.2 функциональность удаленной разработки стала более продуманной и стабильной. В этой версии мы перешли на JetBrains Runtime 17, благодаря чему повысилась производительность и улучшись многие другие аспекты работы IDE. В IntelliJ IDEA Ultimate появилась поддержка Spring 6 и Spring Boot 3, а также добавлены обновления для других фреймворков. Вас ждет много других интересных нововведений, о которых мы рассказываем ниже.
Мы подготовили для вас много важных обновлений удаленной разработки, стараясь сделать этот сервис более стабильным и предоставить максимум полезных функций. Особое внимание мы уделили повышению качества. Подключите свой ноутбук через SSH к IntelliJ IDEA, запущенной на удаленном сервере, и программируйте так же комфортно, как вы привыкли на локальном компьютере. Если вы пользуетесь JetBrains Space для оркестровки бэкендов, теперь вы сможете управлять средами разработки прямо из IntelliJ IDEA. Подробнее
As of v2022.2, all IntelliJ IDEA updates come with JetBrains Runtime 17 (JBR 17), which brings a significant IDE performance improvement, better security, enhanced rendering performance on macOS thanks to the Metal API, and more. Подробнее о переходе на JBR17 читайте в нашем блоге.
IntelliJ IDEA 2022.2 полностью поддерживает Spring 6 и Spring Boot 3, в том числе новые классы @AutoConfiguration
и @ConfigurationProperties
с новым синтаксисом привязки конструкторов без явного @ConstructorBinding
. Не забудьте обновить IDE, если хотите попробовать Spring 6 или перевести свои проекты на новую версию фреймворка.
Чтобы быстро запустить и отладить файл, не создавая отдельную конфигурацию запуска, используйте новое действие Run Current File в виджете Run/Debug. С его помощью вы можете запустить и отладить файл, открытый в данный момент — IDE автоматически выберет наиболее подходящий тип конфигурации запуска.
Мы добавили сочетание клавиш, чтобы вы могли быстро изменить размер шрифта во всех окнах редактора. Для увеличения нажмите Alt+Shift+точка, а для уменьшения — Alt+Shift+запятая. Новый индикатор показывает текущий размер шрифта и позволяет вернуться к значению по умолчанию.
На macOS теперь можно объединить все открытые окна проекта: они отобразятся в виде вкладок в одном окне. Для этого выберите действие Merge All Project Windows в меню Window.
Теперь можно настроить способ отображения результатов инспекций, не меняя степень их серьезности. В меню Highlighting in editor вы увидите доступные стили подсветки и сможете подобрать подходящий вариант для любой инспекции.
Индикатор извлечения копии проекта из репозитория теперь отображается на начальном экране IDE прямо в списке проектов.
В диалоге Add Mnemonic Bookmark теперь есть поле Description, в котором можно ввести описание закладки.
Теперь можно отключить автоматическое закрытие блочного комментария при нажатии Enter. Для этого зайдите в меню Settings / Preferences | Editor | Smart Keys и снимите галочку напротив опции Close block comment в разделе Enter.
Из всплывающего окна автодополнения теперь можно перейти в соответствующие настройки: для этого нажмите на три вертикальные точки.
Если вы по ошибке выставили ассоциацию типа файла с простым текстом, IntelliJ IDEA предложит изменить режим открытия файла прямо в редакторе — не нужно переходить в Preferences / Settings и настраивать тип файла вручную.
Теперь можно легко создать оглавление в Markdown-файле на основе заголовков в документе. Новое действие находится в меню Insert и Generate, которые можно вызвать с помощью Alt+Insert или правым кликом. IDE добавит оглавление туда, где стоит курсор, и заключит его в теги <!-- TOC -->
. В дальнейшем вы сможете его изменить, вызвав то же меню.
Мы внесли ряд изменений в Java-инспекции, чтобы вам было легче находить потенциальные ошибки и упрощать код. Например, инспекция Standard ‘Charset’ object can be used теперь распознает .name()
и .toString()
. IDE предупредит о том, что переменные в образце скрывают поля, и обнаружит бессмысленные вызовы Objects.requireNonNullElse
. Некоторые Java-инспекции, связанные с JUnit, были преобразованы в JVM-инспекции, поэтому теперь они доступны и в Kotlin. Кроме того, автодополнение теперь предлагает подставить литералы .class там, где нужно.
Подробнее об улучшениях для Java читайте в нашем блоге.
Мы добавили поддержку функций, появившихся в свежей версии Kotlin 1.7.0. Теперь IDE корректно отображает типы, точно не допускающие значение null и проводит полезную проверку на наличие требований opt-in.
Мы интегрировали Kotlin-отладчик с функцией анализа потоков данных, так что теперь в нем есть подсказки о том, какие условия истинны и какие ветки будут выполнены. Раньше эта интеграция была доступна только для Java, а теперь поддерживается и в Kotlin.
Встроенный Kotlin-компилятор больше не используется в нативном инструменте сборки IntelliJ IDEA. Теперь и локальные, и CI-сборки запускаются с версией компилятора Kotlin, указанной в настройках проекта. Это устраняет расхождения между локальными и CI-сборками, которые раньше возникали из-за несоответствия версии встроенного компилятора и версии, определенной в файле сборки проекта. Подробнее
Наши усилия по оптимизации индексов положительно повлияли на скорость и производительность IDE при подсветке синтаксиса, автодополнении и использовании действия Find Usages.
Начиная с версии 2022.2, IntelliJ IDEA распознает типы match в файлах .tasty, правильно их обрабатывает, разрешает переменные типа, использует их в качестве аргументов типа, поддерживает инспекции и показывает типы как текст. On top of that, we’ve added support for Option-less extractors , type lambdas and polymorphic function types , type-level compiler intrinsics , and ?
as a wildcard together with _
in Scala 2.13.9 and 2.12.16. Кроме того, теперь правильно расставляются отступы в скопированном коде.
IntelliJ IDEA 2022.2 предупреждает об использовании ключевого слова return
внутри анонимной функции для выхода из функции без выполнения всего кода внутри нее. Обычно это неумышленное использование, которое может привести к негерметичной реализации и снижению производительности. IntelliJ IDEA теперь показывает предупреждение, если параметр private или class затеняет переменную суперкласса. Кроме того, при попытке переопределить переменную запрещенным компилятором способом IDE выдает ошибку. Настроить отображение новых предупреждений можно при наличии соответствующих параметров компилятора (-Xlint:nonlocal-return
и -Xlint:private-shadow
).
Если строка кода со списком аргументов или элементов коллекции слишком длинная, выберите действие Put arguments on separate lines во всплывающем меню, и список будет разбит на несколько строк. Есть и обратное действие: если список в несколько строк достаточно короткий, можно преобразовать его в одну строку с помощью действия Put arguments on one line.
Мы скорректировали подсветку с использованием компилятора для более оптимального использования ресурсов. IDE теперь учитывает настройки подсветки, заданные пользователем. Компиляция запускается реже и использует меньше фоновых потоков. Область компиляции уменьшена до соответствующих областей модуля и исходного кода.
Действие Safe Delete удаляет элемент из определения и всех его вызовов. Теперь оно работает и для параметров типа.
We’ve added support for Groovy-Integrated Queries (GINQ). IDE предоставляет подсветку синтаксиса, автодополнение и инспекции.
IntelliJ IDEA теперь умеет автоматически импортировать SSL-сертификаты из доверенных системных хранилищ. IDE сама обнаружит пользовательские сертификаты, используемые в вашей корпоративной среде разработки. Ничего дополнительно делать не нужно: все работает автоматически.
Мы обновили профилировщик IntelliJ Profiler, упростив сбор снэпшотов. Теперь, когда вы начинаете профилирование, графики CPU и Heap Memory отображаются рядом с консолью. Так вы можете следить за производительностью вашего приложения и собирать множество снэпшотов приложения в течение заданного периода.
Inline-функции Kotlin теперь отображаются вместе с другими функциями во флейм-графе, дереве вызовов и списке методов: вы будете видеть их процессорное время и при необходимости сможете его оптимизировать. Сейчас эта функция доступна только на Linux и macOS в режиме Start profiling. Мы работаем над тем, чтобы она появилась на Windows, и скоро добавим ее в режим Attach.
Spring Framework 6 позволяет определить HTTP-клиент как Java-интерфейс с аннотированными методами. IntelliJ IDEA 2022.2 предоставляет автодополнение URL-адресов, навигацию и интеграцию с HTTP-клиентом для таких интерфейсов.
В IntelliJ IDEA Ultimate теперь работает автодополнение, Search Everywhere и подсказки Find Usages для URL-адресов Spring Cloud Gateway. Вы можете легко сгенерировать HTTP-запрос или найти все маршруты шлюза с помощью окна Endpoints.
IntelliJ IDEA 2022.2 автоматически подсвечивает тела JSON/XML в тестах с популярными Java API, такими как Spring WebTestClient, RestAssured, WireMock и MockServer. В результате эти фрагменты данных удобнее читать и легче редактировать. Вы также можете пользоваться автодополнением URL-адресов и навигацией к объявлениям.
IntelliJ IDEA 2022.2 может помочь вам в отладке исполняемых файлов нативных образов GraalVM. Вы можете подключить отладчик к любому исполняемому файлу на базе GraalVM или запустить ваше приложение с подключенным отладчиком. Для проектов Maven/Gradle будет автоматически создана соответствующая конфигурация запуска. Эта интеграция является экспериментальной и требует установки dev-сборки GraalVM и этого плагина.
Теперь вы можете легко переходить к коду, сгенерированному из файлов .proto и обратно. Убедитесь, что у вас включены плагины gRPC и Protocol Buffers.
IntelliJ IDEA 2022.2 распознает CLI-команды, объявленные с использованием библиотеки Spring Shell, и проверяет их корректность.
IntelliJ IDEA теперь корректно обрабатывает распространенные URL-шаблоны веб-служб JAX-RS, объявленные как @ApplicationPath
, и предоставляет для URL-адресов автодополнение, навигацию и поиск использований.
IntelliJ IDEA Ultimate 2022.2 поддерживает конечные точки WebSocket. Вы можете выполнять запросы, а также отправлять и получать сообщения.
Теперь в IntelliJ IDEA Ultimate можно отправлять запросы по протоколам HTTP и WebSocket — возможность доступна из коробки. Для http:// и https:// используются простые HTTP-запросы, тогда как ws:// и wss:// отправляются через WebSocket.
Мы подготовили для вас несколько улучшений в HTTP-клиенте. Во-первых, выбрать среду запуска теперь можно с помощью специальной иконки на полях. Чтобы включить эту возможность, выберите опцию Select Environment Before Run в комбинированном списке Run with. Во-вторых, в представление Response мы добавили индикатор выполнения, который позволяет следить за процессом загрузки.
При работе с файлами JSON, YAML и .properties теперь можно переходить по ссылкам внутри строковых значений, начинающихся с http:// и https://. Вы можете открыть ссылку в браузере или сгенерировать запрос в HTTP-клиенте через меню Context Actions (Alt + Enter).
IntelliJ IDEA 2022.2 предоставляет ссылки и поддерживает сворачивание атрибутов сообщений в аннотациях Bean Validation на Java и Kotlin. Вы можете пользоваться автодополнением ключей сообщений и переходить к их объявлениям в файлах ValidationMessages.properties.
Мы переработали плагин AWS CloudFormation: обновили схемы метаданных и улучшили автодополнение свойств. Новую версию плагина можно скачать с JetBrains Marketplace.
IntelliJ IDEA now supports all of the features in Jakarta Persistence 3.1, including the new JPQL syntax, functions, and types, and it provides language highlighting and code completion for them.
IntelliJ IDEA 2022.2 поддерживает автодополнение образов для API Testcontainers и предлагает все доступные Docker-образы и их версии. Нажмите на ссылку, чтобы открыть в браузере соответствующий URL-адрес Docker Hub.
Вы можете копировать образы с одного демона Docker на другой с помощью нового действия Copy Docker Image, которое сохраняет образ в файл, а затем добавляет его в выбранный демон.
IntelliJ IDEA 2022.2 автоматически подключается к Docker при перезапуске IDE. Вы можете изменить это поведение в разделе Settings / Preferences | Advanced Settings | Docker.
IntelliJ IDEA 2022.2 интегрирована с Colima и Rancher, и у вас теперь есть больше возможностей для подключения к демонам Docker.
The Kubernetes plugin for IntelliJ IDEA 2022.2 provides integration with the Telepresence tool in order to intercept HTTP requests from services in the Kubernetes cluster and route them to your service running locally. Благодаря этому сервисы проще отлаживать, и вы можете запускать локально только необходимое подмножество сервисов.
Мы значительно улучшили отображение структуры веб-страницы. Благодаря подсветке текста, теперь хорошо видно самое главное: имя тега, ID и примененные CSS-классы.
Теперь можно быстро вернуться к элементу страницы, просто нажав на его значок в левом поле редактора.
Теперь при создании файла объекта страницы в мастере отображается поле URL (необязательное для заполнения). Если адрес включен, мастер предложит имя для файла объекта страницы на основе URL. Кроме того, вставленный URL автоматически загружается при открытии редактора объектов страницы.
При добавлении в код новых элементов страницы курсор теперь автоматически перемещается в конец добавляемого блока, чтобы вам было легко перемещаться по нему и продолжать редактирование.
Когда вы вводите новый класс объекта страницы без ссылок при работе над существующим и видите предупреждение о неразрешенном коде, просто перейдите в контекстное меню предупреждения и создайте новый объект страницы.
Мы улучшили процедуру импорта: теперь можно выбрать несколько CSV-файлов и импортировать их одновременно.
Новый интерфейс окна Modify теперь используется по умолчанию. Начиная с версии 2022.2, все дочерние объекты таблицы можно добавлять и редактировать в этом окне. К предыдущему варианту интерфейса можно вернуться через контекстное меню.
Для работы с базами данных теперь есть два режима разрешения: Playground и Script. Первый предназначен для набора не связанных между собой запросов, а второй — для набора запросов с последовательной логикой, которые должны выполняться как единый скрипт.
Мы активно работаем над поддержкой Angular 14. Главное нововведение этого релиза — поддержка автономных компонентов Angular. IntelliJ IDEA теперь корректно распознает и обрабатывает компоненты, директивы и каналы с отметкой standalone: true
.
В IntelliJ IDEA 2022.2 вас ждет несколько улучшений для Vue 3. Например, IDE распознает сужение типа в директивах v-if/else
. Кроме того, мы улучшили поддержку Pinia — рекомендуемого командой Vue решения для управления состояниями, которое работает как глобальное хранилище. При использовании библиотеки доступно автодополнение, и вы можете переходить к свойствам состояния и действиям, определенным в хранилище.
IntelliJ IDEA 2022.2 включает в себя TypeScript 4.7 и поддерживает новые возможности языка, такие как moduleSuffixes и ESM в Node.js. IDE автоматически подставит расширение .js в оператор импорта, если в файле tsconfig.json для модуля установлено значение node16 или nodenext. Кроме того, IDE поддерживает поле typesVersions в файлах package.json.