IntelliJ IDEA 2023.1 несет в себе множество улучшений нового интерфейса, который мы переработали, основываясь на ваших отзывах. Мы также оптимизировали производительность, что позволило ускорить импорт Maven и доступ к функциональности IDE при открытии проектов. В новой версии улучшен процесс выполнения коммитов за счет проверок в фоновом режиме. IntelliJ IDEA Ultimate теперь поддерживает навигацию к матчерам Spring Security и сопоставления запросов. Вас ждет много других интересных изменений и улучшений, о которых мы рассказываем далее.
Подробнее о новом интерфейсе читайте на этой странице.
Собрав ваши отзывы о новом интерфейсе IntelliJ IDEA, мы внесли в него ряд изменений, отвечающих самым популярным запросам. В IDE теперь есть компактный режим: в нем удобно работать на маленьких экранах благодаря уменьшению элементов и промежутков между ними. Кроме того, теперь можно разделять по вертикали область с окнами инструментов, чтобы располагать их, как вам удобно (такая возможность есть в старом интерфейсе). Мы изменили дизайн виджета Run в заголовке главного окна, чтобы он не так сильно бросался в глаза. Прочитайте подробнее об улучшениях интерфейса, появившихся в этой версии, и попробуйте ее сами.
Мы улучшили работу IDE при запуске, переведя процесс Scanning files to index... в интеллектуальный режим. Благодаря этому все функции IDE становятся доступны гораздо раньше. Теперь при открытии проекта IntelliJ IDEA будет использовать существующие кэши проекта из предыдущей сессии и параллельно искать новые файлы для индексации. Если при сканировании никаких изменений не обнаружится, IDE будет готова к работе без задержек, которые ранее могли быть вызваны процессом индексации при запуске.
Мы значительно повысили производительность IDE при импорте Maven-проектов, оптимизировав разрешение зависимостей, а также переработав процессы импорта и настройки фасетов.
Мы изменили процедуру проверки коммитов в Git и Mercurial, чтобы в целом ускорить выполнение коммита. Теперь проверки производятся в фоновом режиме — после коммита, но до отправки изменений в репозиторий.
Чтобы упростить просмотр применяемых правил безопасности, IntelliJ IDEA Ultimate 2023.1 предоставляет удобную навигацию к матчерам безопасности из контроллеров Spring. Навигация работает как от контроллеров к матчерам, так и в обратную сторону.
Теперь в IntelliJ IDEA можно увеличивать и уменьшать размер всех элементов интерфейса одновременно. Для этого выберите View | Appearance в главном меню и настройте нужный масштаб. В настройках можно задать сочетания клавиш для вызова этих действий: Settings/Preferences | Keymap | Main Menu | View | Appearance.
В IntelliJ IDEA 2023.1 можно сохранять варианты расположения окон инструментов и переключаться между ними по необходимости. Чтобы сохранить макет, разместите окна, как вам нравится, и перейдите в Window | Layouts | Save Current Layout as New. Если вы захотите поменять что-то еще, можно обновить текущий вариант с помощью опции Save Changes in Current Layout или сохранить изменения как новый отдельный макет. Чтобы активировать сохраненный вариант расположения, найдите его в списке в Window | Layouts, наведите на него курсор и нажмите Apply.
Мы добавили новую опцию, которая позволяет зафиксировать ширину боковых окон инструментов или сохранить возможность их менять. Вы найдете новый флажок Remember size for each tool window в разделе Settings/Preferences | Appearance & Behavior | Tool Windows. Подробнее о том, как эта опция работает в старом и новом интерфейсе, читайте в нашем блоге.
Для новичков в программировании и тех, кто только начинает знакомиться с IntelliJ IDEA, мы добавили возможность включить в шаблонном проекте полезные советы, которые помогут освоить IDE. В мастере New Project отметьте пункт Generate code with onboarding tips, чтобы начать работу в простом проекте-песочнице, демонстрирующем основные возможности IDE. Следуя инструкциям, вы научитесь пользоваться поиском Search Everywhere, применять быстрые исправления, запускать и отлаживать код.
В IntelliJ IDEA 2023.1 можно задать поведение Actions on Save для новых проектов. Для этого перейдите в раздел File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save и выберите, какие действия должны выполняться при сохранении изменений в будущих проектах.
Чтобы вы получали наиболее релевантные и точные результаты поиска, мы продолжаем работу по интеграции машинного обучения в Search Everywhere (двойное нажатие Shift). Как и на вкладках Actions и Files, стандартный алгоритм сортировки на вкладке Classes теперь тоже основывается на машинном обучении.
IntelliJ IDEA 2023.1 покажет новое уведомление, если у вас включен Microsoft Defender с функцией Real-Time Protection. Поскольку антивирусные проверки могут значительно снизить скорость работы IDE, IntelliJ IDEA предлагает добавить отдельные папки в список исключений Defender. Параметры можно изменить автоматически или сначала проверить инструкции по настройке Defender и сделать это вручную.
В версии 2023.1 мы улучшили поведение IDE при вставке строки, которая была вырезана или скопирована без выделения. Теперь есть специальная настройка, позволяющая выбрать, как именно выполнять вставку. В меню Settings/Preferences | Advanced Settings найдите раздел Editor и в выпадающем списке выберите желаемое поведение для действия Paste.
В IntelliJ IDEA 2023.1 появился новый флажок Selection в разделе Settings/Preferences | Editor | General | Appearance | Show Whitespaces. Если его установить, IDE будет отображать пробелы в виде маленьких точек только при выделении кода.
В IntelliJ IDEA 2023.1 вы можете использовать регулярные выражения для создания собственных инспекций поиска и замены. Такие инспекции могут быть особенно полезны для обнаружения проблем, связанных со стилем и форматированием. Подробнее
Мы добавили новое действие, которое позволяет исправить форматирование таблиц в Markdown-файлах. К быстрому исправлению можно перейти через контекстные действия (Alt+Enter) или нажав на значок желтой лампочки и выбрав опцию Reformat table в открывшемся списке.
Действие Fill Paragraph теперь поддерживается для Markdown-файлов, позволяя разбивать длинные тексты на несколько строк одинаковой длины. Для этого установите курсор внутри абзаца, который нужно отредактировать, и вызовите действие Fill Paragraph через меню Edit или найдите его с помощью Find Action (Ctrl+Shift+A).
Мы добавили отдельную страницу для настройки поведения редактора при работе с Markdown-файлами в Settings/Preferences | Editor | General | Smart Keys. Так вам будет проще настроить IDE согласно своим предпочтениям, поскольку на этой странице есть отдельные флажки для разных функций редактора (раньше был всего один флажок в разделе Settings/Preferences | Languages & Frameworks).
Инспекция Typo больше не применяется к хешам и специальным значениям, и IDE не сообщает об их неправильном написании. Это обновление распространяется на следующие значения:
Md5
, Sha1
и Sha256
; Sha384
и Sha512
с префиксом shaNNN-
; JWT
. Чтобы помогать вам поддерживать высокое качество кода, мы обновили некоторые существующие Java-инспекции и добавили новые. Так, инспекция Malformed format string теперь сообщает о неверном использовании спецификатора формата времени, которое не соответствует общепринятому синтаксису Java. Инспекция Redundant String operation теперь находит лишние вызовы StringBuilder.toString()
, которые можно быстро заменить на contentEquals()
, чтобы не создавать промежуточный объект String
. IDE также сообщает об избыточных аргументах в вызовах конструктора String
и предоставляет быстрое исправление для их удаления. Подробнее о других улучшениях инспекций кода в IntelliJ IDEA 2023.1 читайте в нашем блоге.
Чтобы Java-разработчики тратили меньше сил при написании кода, в IntelliJ IDEA 2023.1 добавлена поддержка обновлений, появившихся в Java 20, в том числе изменений таких фунций языка, как Pattern Matching for switch и Record Patterns. Подробнее
Мы усовершенствовали рефакторинг Extract Method, добавив возможность применять его даже в тех случаях, когда выбранный фрагмент кода содержит несколько переменных, которые необходимо вернуть. В такой ситуации IDE сначала предлагает обернуть эти переменные в новую запись или bean-класс, а затем выполнить извлечение метода.
В поле VM Options во всплывающем окне Run/Debug configuration теперь работает автодополнение. При вводе имени флага IDE предлагает список доступных параметров командной строки. Это работает для -XX:
и -X
, а также некоторых стандартных параметров, которые не настраиваются IntelliJ IDEA автоматически, например -ea
, но не работает для -cp
и -release
.
IntelliJ IDEA теперь корректно удаляет синтаксический сахар из Scala-кода без скобок и производит рефакторинг, в котором используется функция «меньше скобок». IDE также поддерживает синтаксис без скобок в рабочих листах и правильно интерпретирует отступы при перемещении методов расширения вверх и вниз по коду.
В Gradle, если у вас есть пустой модуль и вам нужно создать корневой каталог для исходного кода, можно использовать диалог New Directory, в котором есть несколько полезных предложений. В версии 2023.1 этот диалог доступен и для sbt-проектов. Вы также можете указать параметры запуска sbt в разделе Settings/Preferences | Build, Execution, Deployment | Build Tools | sbt, а действие Find Usages (Alt+F7) теперь находит символы в sbt-файлах.
Мы усовершенствовали инспекцию Unused declaration. IntelliJ IDEA теперь обнаруживает использование символов в XML-файлах вашего проекта. Инспекция также различает ссылки на термины и ссылки на типы, не помечая одни как используемые, если на самом деле используются другие. Кроме того, мы обновили инспекцию Can be private. В частности, определения верхнего уровня больше не подсвечиваются в рабочих листах и локальных классах. Слева от строки с рекурсивным вызовом теперь отображается специальный значок.
Мы улучшили производительность подсветки Scala 3, когда импортируется много неявных параметров, необходимых для анализа кода, например, при использовании библиотеки Cats. В IntelliJ IDEA 2023.1 вас ждет целый ряд улучшений поддержки синтаксиса, например правильная автоматическая генерация методов переопределения с выражениями using
.
Если вы пользуетесь подсветкой на основе компилятора, до сих пор все импорты помечались как используемые. Однако в Scala 3.3 появился новый параметр компилятора -Wunused:imports
. Если он используется в вашем проекте, IDE сможет определить неиспользуемые импорты. Мы также исправили действие автоимпорта для Enums
.
Мы внесли множество исправлений и улучшений в декомпиляторы Scala 3 и Scala 2. Результаты декомпиляции байткода Scala 2 и Scala 3 были унифицированы, и теперь их легче читать.
Мы обновили вкладку Flame Graph, добавив цветовую подсветку вызовов. Методы, относящиеся к открытому проекту, теперь выделяются желтым цветом. Так вам будет легко понять, какой код можно изменить для решения конкретной проблемы производительности. Мы также переработали общую цветовую схему вкладки Flame Graph, чтобы сделать ее более комфортной для глаз.
Чтобы вам было удобнее следить за изменениями в файлах, мы добавили на панель Structure цветовую индикацию. Имена измененных объектов теперь отображаются синим цветом, а вновь добавленных — зеленым.
Чтобы упростить процесс ревью кода в IDE, мы переработали окно Pull Request. Теперь в нем есть отдельная вкладка для каждого открытого пул-реквеста. На ней вы сразу увидите список измененных файлов, но теперь там меньше информации, чем раньше, чтобы вы могли лучше сосредоточиться на текущей задаче. Новая специальная кнопка позволяет быстро выполнить действие, которое считается наиболее важным исходя из текущего состояния пул-реквеста.
Всплывающее окно Branches стало более удобным. В частности, вам будет проще перемещаться между ветками, потому что теперь они сгруппированы и хранятся в раскрываемых списках.
В IntelliJ IDEA 2023.1 работает автодополнение во всплывающем окне Create New Branch. Как только вы начнете вводить имя новой ветки, IDE предложит подходящие префиксы на основе имен существующих локальных веток.
При конфигурации нового Gradle-проекта теперь можно выбрать нужную версию обертки прямо в мастере создания проектов. Разверните раздел Advanced Settings, снимите флажок с Auto-select и укажите предпочтительный вариант. IDE запомнит ваш выбор, если вы включите опцию Use these settings for future projects под окошком Gradle version.
При импорте проекта IntelliJ IDEA 2023.1 обнаруживает конфигурацию тулчейна Gradle и устанавливает соответствующий Java SDK в настройках модуля.
В IntelliJ IDEA 2023.1 можно задать сочетание клавиш для вызова действия Run with coverage в открытом файле, даже если конфигурация запуска еще не создана. Для этого перейдите в Settings/Preferences | Keymap, найдите опцию Run with Coverage context configuration и укажите выбранное сочетание клавиш.
В IntelliJ IDEA 2023.1 можно фильтровать классы в окне Coverage, чтобы сосредоточиться на недавно обновленных классах и методах, которые требуют особого внимания при тестировании. По умолчанию вы увидите список классов с незафиксированными изменениями. Второй способ фильтрации позволяет скрыть классы, полностью покрытые тестами.
IntelliJ IDEA Ultimate 2023.1 предоставляет обновленную поддержку навигации по сопоставлениям URL-адресов и ролей безопасности для API, представленных в Spring Security 6.
Мы сделали Gradle опцией по умолчанию для запуска и сборки проектов в конфигурации запуска Spring. IDE теперь использует основную настройку для сборки и запуска проекта с использованием Gradle, как определено в Settings/Preferences | Build, Execution, Deployment | Build Tools | Gradle.
В IntelliJ IDEA Ultimate 2023.1 можно изменять настройки Spring и JPA и делиться ими с помощью пользовательских фасетов в разделе File | Project Structure | Modules. Например, чтобы поделиться выбранным источником данных для JPA с коллегами по команде, можно создать фасет JPA и сделать коммит его настроек в систему контроля версий, добавив файл модуля с расширением *.iml.
В IntelliJ IDEA Ultimate 2023.1 появилась возможность запускать запросы к MongoDB в консоли Database из репозиториев Spring и Micronaut Data. Для этого в строке запроса используйте новое действие Run query in console intention. IDE сгенерирует соответствующие вызовы JavaScript, включая дополнительные параметры запроса, такие как sort
.
IntelliJ IDEA Ultimate 2023.1 предоставляет более широкий набор проверок для реактивного кода. For example, the IDE now reports usages of transformation operators with the Mono<Void>
type described in the Reactor 3 Reference Guide.
Теперь есть отдельный плагин, который обеспечивает функциональность Apache Dubbo как часть поддержки Spring в IntelliJ IDEA. Его можно скачать с JetBrains Marketplace или установить напрямую в разделе Settings/Preferences | Plugins.
Если вы определяете дополнительные метаданные для API с помощью аннотаций Swagger 2.X в контроллерах Spring, IntelliJ IDEA Ultimate теперь включает эти аннотации при генерации файлов OpenAPI из всплывающего диалога действий для URL или из окна Endpoints.
Теперь можно редактировать части больших спецификаций OpenAPI в отдельных файлах, легко перемещаясь между ними. Кроме того, для таких файлов IDE предоставляет автодополнение и подсветку так же, как и для основного файла спецификации.
В IntelliJ IDEA Ultimate 2023.1 появилась возможность выполнять GRPC-запросы из proto-файлов, содержащих импорты из архивов .jar. Мы также улучшили автодополнение кода в теле запроса, например, для типов OneOf
и Map<K,V>
. Кроме того, мы добавили вкладку HTTP Client для конечных точек Protobuf в окне Endpoints.
IDE теперь предоставляет все функции редактирования, необходимые для работы с конфигурационными файлами application.yaml в Ktor, включая автодополнение кода, подсветку и валидацию.
Журналы всех контейнеров Docker Compose теперь собраны в одном месте — на вкладке Dashboard в узле Docker Compose, где они обновляются в реальном времени.
Теперь вы можете легко подключиться к реестру контейнеров Azure. Перейдите в Settings/Preferences | Build, Execution, Deployment | Docker | Docker Registry и выберите опцию Docker V2 в поле Registry.
:z
для привязки томов на SELinux Теперь у вас есть возможность добавлять флаги конфигурации :z
при монтировании каталога с хоста, что позволяет подключать тома к Docker-контейнерам на устройствах SELinux. Чтобы включить эту функцию, перейдите в раздел Settings/Preferences | Advanced Settings | Docker.
IntelliJ IDEA 2023.1 проинформирует вас о результатах проверки работоспособности Docker. Теперь статусы запущенных Docker-контейнеров отображаются рядом с их именами в окне Services. Для простоты понимания на значках контейнеров, которые запускаются и работают нормально, изображена маленькая зеленая точка, а нерабочие контейнеры помечены красным цветом.
Мы упразднили функциональность Docker debug. Для отладки приложений, использующих Docker-контейнеры, используйте Run targets.
Чтобы вам было проще создавать файлы Kubernetes, мы добавили новое действие в меню File | New. Выбрав опцию New Kubernetes Resource, вы увидите список самых популярных типов ресурсов, таких как Pod, Deployment, ConfigMap и др.
В IntelliJ IDEA Ultimate 2023.1 появился новый диалог для создания секретов Kubernetes. Чтобы определить новый секрет, можно вручную ввести данные для Key и Value или указать файл, содержимое которого следует использовать.
Теперь, когда вы применяете действие View YAML для ресурсов из кластера и вносите изменения в открытый файл, IntelliJ IDEA Ultimate отмечает все ваши правки цветными маркерами на полях редактора. Таким образом, вы можете быть уверены, что изменения внесены в нужные части ресурса, прежде чем применить их к кластеру. Кроме того, если нажать на значок Compare with Cluster, откроется окно, в котором можно сравнить текущую версию ресурса из кластера с локальной версией.
В IntelliJ IDEA Ultimate 2023.1 стало удобнее работать с файлами kubeconfig. Теперь вы можете легко получить доступ к файлу kubeconfig из представления Services и открыть его в редакторе. Если вы измените файл kubeconfig за пределами IDE, IntelliJ IDEA это обнаружит и автоматически обновит конфигурацию в окне Services. Кроме того, для файлов kubeconfig предусмотрена подсветка синтаксиса и автодополнение.
Теперь можно назначить сочетания клавиш для большинства Kubernetes-действий в окне Services, например: Forward Ports, Delete Resource, Describe Resource и других. Чтобы это сделать, перейдите в настройки: Settings/Preferences | Keymap | Plugins | Kubernetes.
Теперь, когда гости подключаются к сеансу, их клиент больше похож на привычную IDE JetBrains. Гостям видны все те же элементы, что и создателю сеанса, включая те, к которым у них нет доступа, — они выделены серым цветом. Гости видят, что недоступно, и могут попросить создателя сеанса выполнить эти действия за них.
Теперь гости сеанса могут запрашивать дополнительные разрешения, просто нажав на значок ключа рядом с недоступным элементом. А создателям сеанса не нужно заранее настраивать права доступа: дополнительные разрешения можно легко предоставить гостям в процессе работы.
Недавние проекты теперь хранятся на хосте, а не на клиенте. Это позволяет получать точную и актуальную информацию, даже если вы подключаетесь с другого клиента. Мы также добавили несколько новых полезных опций, например, выбор версии IDE для использования на хосте.
Long-awaited Astro support has landed in IntelliJ IDEA 2023.1! Чтобы ею воспользоваться, установите Astro-плагин через меню Settings/Preferences | Plugins. Плагин обеспечивает базовую функциональность, включая подсветку синтаксиса, автодополнение кода с автоматическими импортами, рефакторинги, навигацию, правильное форматирование и многое другое.
Мы добавили поддержку TypeScript в Vue-шаблоны. Она включится, если установить для атрибута lang
в теге script
значение ts
. Раньше, независимо от атрибута lang
в теге script
, использовался JavaScript. IntelliJ IDEA теперь поддерживает встроенное приведение типов, улучшенное сужение типов и показывает корректную информацию о выведенных типах в быстрой документации для шаблонов однофайловых компонентов Vue.
IntelliJ IDEA теперь автоматически преобразовывает строки с одинарными или двойными кавычками в шаблонные литералы всякий раз, когда вы вводите ${
. Это работает как для простых строк, так и для свойств JSX.
В этой версии добавлена поддержка параметров конфигурации, в частности, автодополнение имен пользовательских классов в настройке classAttributes
, а также поддержка экспериментальных настроек, таких как tailwindCSS.experimental.configFile
. Эти параметры конфигурации можно настроить в разделе Settings/Preferences | Languages & Frameworks | Style Sheets | Tailwind CSS.