Rider 2023.2 предлагает улучшенную поддержку для C#, которая включает в себя новые инспекции для работы с локальными функциями и необработанными строками, а также для устранения распространенных ошибок Entity Framework. Мы внесли ряд улучшений в интерфейс и завершили работу над новым дизайном IDE с широкими возможностями настройки. Разрабатывать игры в Rider стало еще удобнее: мы обновили функционал DOTS для Unity, оптимизировали индексацию Blueprints для Unreal Engine и сделали ряд других улучшений. Кроме того, Rider 2023.2 — первая версия IDE, которая предлагает функции на основе искусственного интеллекта. Для этого используется плагин JetBrains AI Assistant.
Мы упростили навигацию по открытым проектам с помощью цветовой индикации. Цвета заголовков определены заранее, но вы можете настроить их, как вам нравится. Чтобы задать цвет для проекта, кликните правой кнопкой мыши по заголовку окна, зайдите в контекстное меню, выберите опцию Change Toolbar Color и укажите желаемый цвет. Чтобы отключить эту функцию, просто снимите флажок с опции Use Project Colors in Toolbar в контекстном меню.
В этой версии мы представляем важное дополнение к Rider — помощник на основе искусственного интеллекта AI Assistant. Текущий набор его функций включает чат-бота, который органично вписывается в ключевые процессы работы в IDE. AI Assistant умеет анализировать выбранный код, объяснять значение коммита и создавать файлы Unity в соответствии со спецификацией.
В Rider 2023.2 переработано окно Build: мы изменили интерфейс и оптимизировали производительность. Результаты сборки теперь отображаются в виде дерева событий слева и журнала справа. Вывод загружается «ленивым» образом, а значит, будут показываться только те данные, которые вы выберете в дереве событий, — так будет потребляться меньше ресурсов процессора, а навигация станет удобнее.
Мы добавили новые инспекции и контекстные действия для работы с необработанными строками, а также улучшили поддержку редактирования и ввели новые возможности форматирования. Среди них:
Мы добавили несколько новых инспекций, быстрых исправлений и возможностей контекстной навигации для распространенных проблем, которые возникают при работе с базами данных, использующими фреймворки объектно-реляционного отображения (ORM), в частности Entity Framework.
Подробнее о новых инспекциях для Entity Framework читайте в нашем блоге.
В Rider 2023.2 добавлены две новые инспекции с быстрыми исправлениями для улучшения читаемости кода с использованием локальных функций:
return
или continue
перед локальными функциями в конце метода. return
, continue
или другим оператором передачи управления. Подробнее о новых инспекциях — в нашем блоге.
#nullable
и NRT-аннотаций В новой версии появились несколько новых инспекция для директив #nullable
и NRT-аннотаций:
JetBrains.Annotations
базового члена. Подробнее об этих инспекциях читайте в нашем блоге.
var
Теперь в случае распространенных оберточных типов все навигационные действия (Go to…, Find Usages и т. д.) предлагают базовые типы при переходе от var
. Например, при вызове действия Go to declaration на ключевом слове var переменной с типом ImmutableArray<Person>?
Rider предложит перейти к Person
.
Подробнее об этом читайте в нашем блоге.
В версии 2023.2 мы добавили поддержку первичных конструкторов для классов non-record и типов non-record struct, появившихся в предварительной версии C# 12. Несколько инспекций выявляют эти типы там, где инициализацию можно выразить с помощью нового первичного конструктора, и предлагают применить быстрое исправление, чтобы заметно сократить объем повторяющегося кода.
Иногда инициализация типа должна быть менее тривиальной, и ее уже нельзя выразить с помощью первичного конструктора. Для таких случаев мы предусмотрели несколько контекстных действий, позволяющих отменить подстановку параметров первичного конструктора в конструкторы и обычные поля.
Об этих и многих других функциях для работы с первичными конструкторами читайте в нашем блоге.
В рамках работы над поддержкой нововведений C# 12 мы добавили поддержку значений параметров по умолчанию в лямбда-выражениях. Помимо стандартного набора предупреждений, касающихся распознавания этого синтаксиса, мы также переработали инспекцию The parameter has the same default value, чтобы она учитывала значения параметров по умолчанию в лямбдах. Подробнее
В Rider 2023.2 добавлены две новые инспекции, чтобы было проще управлять освобождением объектов:
Кроме того, мы улучшили функцию Generate dispose pattern, обеспечив поддержку интерфейса IAsyncDisposable
и возможность генерации асинхронного метода для освобождения ресурсов.
Подробнее об этих изменениях можно прочитать здесь.
Мы добавили новые возможности анализа кода для поддержки сброса переменных C#:
_
name is typically reserved for local parameters without usages касается переменных и параметров с именем _
, которые на самом деле используются. Они выглядят так, будто их значение сброшено, но в действительности все наоборот. Когда значение передается аргументу кортежа или возвращаемому типу, C# позволяет опустить имена компонентов. Однако в отсутствие имен сложнее понять смысл каждого компонента — приходится смотреть его целевой тип. Например, многие разработчики вынуждены проверять, куда назначен кортеж (null
, false
), чтобы понять, что означают его компоненты.
Здесь на помощь приходят встроенные подсказки. Rider 2023.2 выводит на экран подсказки с именами компонентов кортежа, если эти имена не указаны явно. В результате код становится проще читать и понимать.
Для стандартных и null-компонентов в Rider 2023.2 отображаются подсказки с целевыми типами, даже если у целевого компонента нет явного имени. Исключение составляют типы строк и объектов, потому что они обычно малоинформативны.
Еще одна распространенная ситуация, в которой имена могут улучшить читаемость — паттерны деконструкции. В этом случае явное имя известно либо из метода Deconstruct
, либо из компонентов исходного кортежа. Задача этих подсказок — дать вам дополнительный контекст, если в самом паттерне недостаточно данных, чтобы понять, что к чему относится, например value is ({ }, true, null)
.
#pragma warning
Директивы Pragma позволяют легко включать и отключать предупреждения компилятора по их идентификаторам. Однако, несмотря на то, что такие идентификаторы являются отличным способом взаимодействия с компилятором, в них может быть сложно разобраться человеку. Без специальных знаний невозможно понять, к чему относится идентификатор CS0168
или CS0618
и что требует внимания.
Начиная с этой версии, обновленный интерфейс IDE, впервые представленный в Rider 2022.3, будет включен по умолчанию для всех новых пользователей. Если вы еще не перешли на новый интерфейс, рекомендуем вам познакомиться с ним. Включить его можно в меню Settings / Preferences | Appearance & Behavior | New UI | Enable new UI.
В новом интерфейсе на Windows и Linux изменился дизайн меню на главной панели инструментов. Теперь элементы меню отображаются по горизонтали на панели инструментов.
Чтобы вам было проще управлять несколькими конфигурациями запуска, наиболее часто используемые из них теперь можно закреплять в виджете Run. Для этого нажмите на три точки рядом с названием конфигурации и в открывшемся меню выберите Pin. Если вы хотите изменить порядок закрепленных конфигураций, просто перетащите их вверх или вниз по списку.
Мы расширили возможности кастомизации главной панели инструментов в новом интерфейсе. Теперь в выпадающем меню можно быстро выбрать действия, которые вы хотите добавить на панель. Для этого кликните правой кнопкой мыши по любому виджету и выберите опцию Add to Main Toolbar, чтобы увидеть доступные варианты.
В Rider 2023.2 мы усовершенствовали светлую тему, добавив альтернативный вариант Light with Light Header, отличающийся светлыми цветами заголовков окон, всплывающих подсказок и уведомлений.
В окне Solution Explorer теперь есть опция Open Directories with Single Click, которая позволяет быстрее разворачивать и сворачивать папки проектов. Вы найдете ее в выпадающем меню, если нажмете на три точки.
В Solution Explorer появилось долгожданное упорядочивание файлов по времени изменения. Пересортировка файлов происходит автоматически при сохранении изменений в проекте. Чтобы включить сортировку, откройте меню (нажав на три точки) в Solution Explorer и выберите Tree Appearance | Sort by Modification Time.
Версия 2023.2 наших IDE на базе IntelliJ и .NET-инструментов включают важную новую функцию AI Assistant — помощник на основе искусственного интеллекта. Он находится на ранней стадии разработки, но вы уже можете оценить наш подход к внедрению искусственного интеллекта в привычные процессы работы в IDE и интеграцию его возможностей с анализом кода. Подробнее
На данный момент AI Assistant не встроен в стабильные версии IDE JetBrains и устанавливается как отдельный плагин для версий не ранее 2023.2.x. Доступ к AI Assistant временно ограничен, и вы можете оказаться в листе ожидания.
В окне AI Assistant можно пообщаться с большой языковой моделью (LLM), задать вопросы и обсудить задание. IDE предоставит контекст, касающийся проекта, например информацию об используемых языках и технологиях. Если вас устраивает сгенерированный искусственным интеллектом код, вы можете скопировать его в редактор при помощи действия Insert Snippet at Caret или вручную.
Выделите фрагмент кода в редакторе и вызовите действие из контекстного меню AI Actions....
AI Assistant умеет:
В диалоге сообщений коммитов появилась кнопка Generate Commit Message with AI Assistant. При нажатии на нее информация об изменениях передается в LLM, которая создает сообщение коммита с описанием внесенных изменений. Кроме того, вы можете попросить AI Assistant объяснить коммиты коллег.
AI Assistant поможет сгенерировать файл для решения Unity в соответствии со спецификациями. Правой кнопкой щелкните на проекте в Solution Explorer, выберите в контекстном меню Create with AI Assistant и напишите запрос. Когда ИИ сгенерирует содержимое файла, нажмите Create New File, и файл будет автоматически добавлен в проект.
В Rider 2023.2 мы пересмотрели подход к кэшированию данных, которые IDE использует для работы своих систем. Такие изменения, опирающиеся на множество тестов производительности, позволили значительно сократить использование дискового пространства каждым открытым решением. С практической точки зрения это позволяет тратить меньше времени на запись данных на диск и их считывание, а следовательно, сократить время загрузки решений.
В Rider 2023.2 расширена функциональность действия Find Usages. Теперь при вызове Find Usages Advanced на символе (например, методе, классе или переменной) открывается окно, в котором можно указать дополнительные критерии поиска.
Чтобы навигация по кодовой базе стала удобнее, мы добавили новые опции на специальную страницу Search and Navigation в разделе Settings / Preferences | Editor.
В Rider 2023.2 добавлен ряд улучшений для работы с анализаторами и генераторами кода Roslyn. Вот некоторые из обновлений:
В последнем релизе мы представили быстрый режим запуска для Docker. Начиная с версии 2023.2, можно использовать Docker в быстром режиме и на WSL. Чтобы запускать Docker-контейнеры на Windows без Docker Desktop, сначала нужно установить WSL, установить Docker на дистрибутив Linux и добавить WSL в настройки Rider в разделе Build, Execution, Deployment | Docker. После этого вы сможете запускать и отлаживать Docker-контейнеры в WSL (в быстром режиме или без него).
Мы упростили настройку конфигурации запуска Docker Compose при помощи меток. Добавляя такие фрагменты кода в файл docker-compose.yml
, вы можете указать, нужно ли запускать и отлаживать ваши приложения и как это делать.
Например, если вы хотите отключить режим быстрого запуска для определенных сервисов, добавьте для них метку com.jetbrains.rider.fast.mode: "false"
. А если нужно отключить режим отладки, используйте метку com.jetbrains.rider.debug: "false"
.
XAML Hot Reload теперь доступен для решений, ориентированных на .NET MAUI! Поддержка XAML Hot Reload в Rider позволяет разработчикам мобильных приложений вносить изменения в интерфейс и код MAUI-приложений во время их работы — без полной пересборки и повторного развертывания. Внесенные изменения применяются немедленно, обеспечивая более быстрый и итеративный процесс разработки.
В этой версии, как и всегда, много новых возможностей для разработки на Unity. Мы сделали более удобным редактирование файлов ShaderLab, обновили функционал DOTS, улучшили поддержку файлов USS.
AI Assistant помогает решать проблемы и учиться, и мы хотим, чтобы разработчики Unity как можно скорее начали пользоваться его возможностями. Rider подскажет AI Assistant, что вы работаете с проектом Unity. Если вы спросите «Как создать окно редактора?» или «Как добавить пункт меню?», помощник поймет, что речь об окне или пункте меню в редакторе Unity, и предложит нужные API.
Кроме того, контекст Unity — это отличная возможность прототипировать дополнительное поведение. Если попросить AI Assistant создать файл, он добавит кнопку, которая автоматически создаст файл с предложенным содержимым. По мере развития AI Assistant его функциональность будет охватывать другие действия и контексты.
В новой версии значительно улучшена поддержка файлов ShaderLab в Rider: расширены возможности редактирования, появились новые шаблоны Live Templates, возможность заполнения Breadcrumbs и окно Structure, а также переход к объявлению имени шейдера или прохода рендера при нажатии Ctrl+Click.
Изменений так много, что мы посвятили им отдельный блог-пост.
Опираясь на отзывы и пожелания сообщества Unity, мы внесли важные изменения в генерацию кода для Data Oriented Tech Stack (DOTS). Кроме того, мы добавили новые шаблоны файлов и Live Templates, а также расширили перечень частей кода, для которых используется анализ контекста Burst.
В отладчике тоже появилась поддержка DOTS. Благодаря улучшенному представлению типов RefRO
и RefRW
стало проще увидеть значение за оберткой ссылки. При этом узел Raw Value всегда можно развернуть, чтобы посмотреть исходное представление.
В новой версии существенно изменена работа с файлами стилей Unity (USS): теперь Rider поддерживает функцию var
. Кроме того, добавлена подсветка и автодополнение для многих свойств, появившихся в новых версиях Unity.
Мы также добавили автодополнение для путей, использующихся в API баз данных ассетов. Просто введите несколько символов, и Rider предложит пути, используемые в проекте.
Вас ждет много других улучшений и исправлений: например, юнит-тесты больше не будут зависать в статусе Canceling, для скрытых папок больше не создаются неверные файлы .meta
, а иконки Unity теперь соответствуют новому интерфейсу.
В Rider 2023.2 существенно обновлена поддержка Unreal Engine: добавлено много улучшений для работы с C++, появилась поддержка Hot Reload и Live Coding, ускорена индексация файлов Blueprint, исправлены ошибки и расширена поддержка Perforce.
В этой версии мы ускорили индексирование файлов Blueprints. При первом открытии проекта Rider индексирует все ассеты Blueprint: можно искать использования классов в Blueprints, значения сериализованных данных показываются прямо в текстовом редакторе, сами данные кэшируются и постепенно обновляются по ходу работы.
Раньше ассеты индексировались одновременно с кодом C++, поэтому подготовка Rider к работе занимала больше времени.
Rider 2023.2 индексирует ассеты в фоновом режиме уже после того, как проиндексирован код C++. Пока IDE индексирует ассеты, код можно редактировать, работает подсветка синтаксиса и навигация по коду.
Теперь Rider поддерживает вызов Hot Reload и Live Coding из IDE, поэтому вы можете обновить приложение Unreal даже при запущенном редакторе. Как только в редакторе Unreal включается одна из этих функций, Rider показывает кнопку Build and Reload на панели инструментов, позволяя скомпилировать изменения, пока Unreal загружает обновления.
Мы улучшили интеграцию с Perforce и существенно сократили время обновления статуса локальных файлов, а также внесли другие улучшения и исправления. При открытии решения новая версия Rider автоматически находит рабочее пространство Perforce, а также получает значение P4CONFIG
и других настроек из реестра, а не только от переменных окружения.
В Rider 2023.2 вас ждет много других улучшений и исправлений для разработки игр на C++. Мы улучшили работу сложного сценария, который приводил к зависанию Rider при работе с очень большими файлами проекта. Теперь при работе с решениями на базе .uproject в Rider легко ограничить область поиска по файлам только директориями плагинов. Кроме того, исправлены ошибки в плагине RiderLink, чтобы его можно было встроить в новый тулчейн VC++.
В Rider 2023.2 мы постарались улучшить способ представления ошибок типов в JavaScript и TypeScript. Благодаря новому форматированию информацию об ошибках и предупреждениях проще читать, а значит легче находить проблемы в коде. Новым способом отображаются все ошибки в TypeScript-коде и наиболее распространенные в JavaScript, а также локализованные ошибки.
Rider now supports the CSS Nesting Module feature. Мы добавили поддержку синтаксиса и инспекцию для проверки того, что вложенный селектор не начинается с идентификатора или функциональной нотации.
Плагин, обеспечивающий автодополнение для Tailwind, теперь поддерживает файлы Razor.
У нас отличные новости для пользователей Vue: в Rider добавлена базовая поддержка Volar, обеспечивающая более точное обнаружение ошибок. По умолчанию Volar используется для TypeScript 5.0 и более свежих версий, а для более ранних — наша собственная реализация. Интеграцию с Volar для всех версий TypeScript можно включить в разделе Settings | Languages & Frameworks | TypeScript | Vue.
Подробнее о новых возможностях для веб-разработки читайте на странице WebStorm 2023.2.
Мы изменили процедуру проверки кода перед коммитом в Git и Mercurial, чтобы в целом ускорить выполнение коммита. Теперь проверки производятся в фоновом режиме — после коммита, но до отправки изменений в репозиторий.
В Rider 2023.2 появилась долгожданная возможность выбирать для коммита только определенные фрагменты кода. Для этого выделите нужные строки внутри блока кода и вызовите действие Include these lines into commit из контекстного меню. Блок будет разделен на отдельные строки, а выбранные строки будут подсвечены. Используйте флажки или контекстное меню, чтобы добавить или снять выделение со строки.
В прежних версиях Rider модуль dotMemory можно было использовать только для анализа распределения памяти. Теперь же можно собирать снэпшоты памяти и анализировать их в Rider точно так же, как в автономной версии dotMemory.
Теперь в представлении Call Tree можно сгруппировать стеки вызовов по потокам, чтобы было удобнее анализировать проблемы с производительностью, характерные для конкретных потоков.
Хорошо известно, что инструменты статического анализа тяжело настраивать. В версии Rider 2023.2 мы устранили эту проблему благодаря полной интеграции с Qodana — умным механизмом статического анализа, подходящим для любого CI/CD-пайплайна.
Эта интеграция дает два важных преимущества. Во-первых, удобство настройки: вы можете за пару кликов запустить статический анализ кода, просмотреть список проблем по всему проекту, а затем настроить Qodana в вашей CI/CD-системе для установки критериев качества Второе преимущество — улучшенный процесс контроля качества кода. Настроив Qodana в CI/CD-системе, можно просматривать результаты серверного анализа, не покидая IDE.
Платформа Qodana только что была официально выпущена. Подробная информация о релизе и рекомендации по использованию Qodana в Rider — в этом блог-посте.
В Rider 2023.2 мы переработали диалог подключения к базе данных, удалив из него ряд второстепенных параметров, которые мешали пользователям, и подключаться стало проще. Одно из главных улучшений: теперь Rider сканирует открытое решение в поисках строк подключения и предлагает их в этом диалоге.
Вот еще несколько важных изменений:
Подробнее об изменениях в работе с базами данных читайте на этой странице.
Мы включили возможность использования указателей из F# на C# в памяти, поэтому теперь не нужно собирать проекты C#, чтобы ссылающийся на них код F# увидел изменения. Это позволило улучшить кросс-языковые рефакторинги и навигацию, поскольку служба компилятора F# теперь обязательно обращается к актуальным источникам кода C#, помимо уже работающих указателей из C# на F# в памяти.
Мы добавили поддержку языковых вставок для языков IntelliJ Platform, чтобы вы могли использовать разные языки фронтенда в литералах F#, а также получать доступ к базам данных, открывать веб-ссылки или задачи и т. п.
Для F# доступно новое всплывающее окно Go to File Member, в котором удобнее просматривать структуру файла и переходить к членам от базовых типов.
Мы добавили ряд улучшений, чтобы облегчить вам работу с паттернами вариантов union:
We also want to thank Florian Verdonck for contributing to this improvement.
Мы исправили ряд ошибок, улучшив генерацию переопределений. В частности, сгенерированные члены теперь всегда вставляются в нужные месты, а типы при необходимости переформатируются. A huge thanks goes to David Schaefer for contributing to this improvement.
You can find the full list of F# updates and fixes available in Rider 2023.2 here.
Для синхронизации настроек долгое время параллельно существовало два плагина с пересекающимися функциями — IDE Settings Sync и Settings Repository.
Чтобы избежать путаницы, мы объединили их функциональность в одном решении — новом плагине Settings Sync.
Rider 2023.2 включает в себя поддержку LSP API для разработчиков плагинов. API предназначен в основном для тех, кто хочет использовать определенный LSP-сервер, чтобы получать помощь в написании кода в IDE. Если вы создали свой собственный язык программирования или фреймворк, для его поддержки в IDE можно написать LSP-сервер и плагин.
На данный момент поддержка LSP включает в себя подсветку ошибок и предупреждений, быстрые исправления, автодополнение кода и навигацию по объявлениям. Подробнее — в блоге команды IntelliJ IDEA.
В Rider 2023.2 появился Feature Trainer — новый интерактивный инструмент для знакомства с функциональностью и рабочими процессами, поддерживаемыми IDE, который будет полезен как новичкам, так и опытным пользователям. В нем используется практический подход к обучению: Feature Trainer предлагает пошаговые инструкции и примеры кода для тренировки. Попробовать его можно в разделе Help | Learn IDE Features. Feature Trainer доступен только в новом интерфейсе.
JetBrains стремится сделать свои продукты максимально доступными для всех. В этой версии Rider мы внесли несколько улучшений, чтобы все пользователи, включая слепых и слабовидящих, могли полноценно работать с нашим продуктом. Вот что вас ждет в этой версии:
В дополнение к поддержке ARM64 в Rider 2023.2 появилась поддержка инструментов удаленного отладчика, загружаемых на удаленную машину, работающую на ARM32, например Raspberry Pi. Для подключения к такому удаленному процессу используйте диалог Attach to Process.
JetBrains Rider включает в себя встроенный эмулятор терминала для работы с командной строкой внутри IDE. В предыдущих версиях Rider в качестве слоя эмуляции терминала в Windows использовалась сторонняя библиотека WinPTY. В Rider 2023.2 мы переходим на ConPTY, предоставляемую операционной системой, в тех версиях Windows, которые ее поддерживают. Хотя видимых изменений не ожидается, этот переход открывает новые возможности для улучшения терминала и консоли выполнения.