Rider 2024.1 предлагает новые возможности для отслеживания производительности приложения и сбора ключевых метрик, липкие строки, позволяющие лучше понимать, в какой области кода вы находитесь, и быстрее перемещаться по коду, а также диалог New Project для более быстрой и удобной настройки проекта. Новая версия расширяет возможности отладки, предлагая инструмент визуализации коллекций и отображая время пошаговой отладки между двумя точками останова. Разработчикам игр доступен новый набор функций для популярного инструмента для Unity — Odin Inspector. Мы также реализовали поддержку фреймворка Slate UI для Unreal Engine.
В Rider 2024.1 появилось окно Monitoring, где можно отслеживать производительность приложений .NET и в фоновом режиме собирать ключевые метрики во время их запуска или отладки.
Мы добавили в редактор функцию липких строк, которая упрощает работу с большими файлами и знакомство с новыми кодовыми базами. Эта функция позволяет закрепить в верхней части окна редактора основные структурные элементы, например начала классов или методов, чтобы они оставались на виду во время прокрутки кода. Благодаря этому вы все время будете видеть контекст, а для быстрой навигации достаточно просто кликнуть по закрепленной строке.
Исследуйте коллекции, например массивы, списки, словари и другие перечисляемые типы, чтобы лучше разобраться в состоянии данных программы во время отладки и выявить все возможные проблемы, касающиеся обработки данных.
Мы существенно переработали диалог New Project, стремясь упростить настройку новых проектов. Он обеспечивает комплексную поддержку настройки проектов для .NET и пользовательских параметров шаблонов. Кроме того, теперь целевой SDK и соответствующее приложение MAUI можно установить прямо из диалога.
Мы существенно переработали диалог New Project, чтобы максимально упростить настройку новых проектов. Особенности обновленного диалога:
В предыдущих версиях уже было можно увеличивать и уменьшать одновременно размер всех элементов интерфейса IDE, однако масштаб можно было менять только от 100% до 200% от исходного. В новой версии мы сделали эту настройку более гибкой: теперь размер элементов интерфейса можно уменьшить до 70% от исходного.
В новой версии мы переработали окно Terminal, улучшив как его внешний вид, так и функционал, чтобы решать задачи, связанные с терминалом было проще и удобнее. В обновлении улучшен интерфейс окна и расширены его возможности.
Переключиться на новый терминал можно в настройках: Settings/Preferences | Tools | Terminal | Enable New Terminal.
Подробнее о новом терминале читайте в блоге IntelliJ IDEA.
Теперь пользователь будет чаще получать рекомендации преобразовать конструкции исходного кода в выражения коллекций C# 12, например в пустой массив или объявление и инициализацию ImmutableArray
.
Мы добавили новую инспекцию Possible 'System.InvalidOperationException: Collection was modified': при итерациях в циклах foreach
она предупредит вас о том, что коллекция была изменена, поскольку такие изменения могут вызвать исключения в среде выполнения. При анализе учитываются случаи выхода из цикла после изменения коллекции: в таких ситуациях предупреждение не выдается. Инспекция предлагает соответствующее быстрое исправление, которое позволит моментально устранить проблему.
Функция Generate | Formatting Members позволяет создавать шаблонный код, переопределяющий метод ToString()
и возвращающий осмысленную строку для ваших типов. Начиная с версии 2024.1, эта функция поддерживает больше типов, например ISpanFormattable
, IUtf8SpanFormattable
и IFormattable
.
[MustDisposeResource]
: теперь при анализе кода C# все ресурсы, возвращенные асинхронными методами, включая ресурсы в обертке Task<IDisposable>
и ValueTask<IDisposable>
, корректно удаляются, и вам не грозит непреднамеренное удаление самой задачи. .ConfigureAwait(...)
, .AsTask()
, или .Result
. Вот некоторые улучшения, сделанные в рефакторинге Change Signature:
Deconstruct
. Параметры можно добавлять, удалять, переименовывать, а также менять их порядок. Все эти изменения отражаются и в объявлении метода, и в его использованиях. List<>
, с помощью автодополнения удобно выбрать нужный вариант, такой как int
. System.Collections.Generic.List<System.Int16>
, в итоговом коде он будет автоматически сокращен до List<short>
. in
и ref readonly
, а также типы record
.Начиная с этой версии, рефакторинг Make Static поддерживает параметры первичного конструктора. Они появляются в списке Introduce parameters и, чтобы их было проще отличить, обозначаются специальной иконкой. Этот рефакторинг доступен также для локальных функций.
Мы активно дорабатываем режим активного использования ресурсов при анализе всего решения. Это позволит существенно сократить время анализа за счет более эффективного параллельного использования ядер процессора. Мы улучшили профиль распределения памяти при анализе кода, чтобы сократить затраты времени на сборку мусора. Процесс доработки продолжается, и мы будем благодарны, если вы попробуете использовать этот режим и оставите свой отзыв.
protobuf-net
В новой версии функция анализа кода поддерживает атрибут ProtoContract
и перечисление ImplicitFields
, входящие в библиотеку protobuf-net
. Их можно использовать, чтобы отметить члены класса, неявно используемые для сериализации. В результате для таких членов больше не будет появляться предупреждение unused members.
Генерация переопределений в выражениях объектов теперь возможна с помощью быстрых исправлений для отсутствующих членов, с помощью автодополнения кода, а также рефакторинга Generate.
В новой версии при поиске использований union можно посмотреть их варианты. Благодаря этому проще понять, как создаются и сопоставляются с образцами экземпляры типов.
Мы добавили постфиксный шаблон new
, который создает экземпляры типов и выражения объектов для классов и интерфейсов.
Внедрена поддержка липких строк для F#, так что при работе с длинными типами и функциями стало проще просматривать контекст.
Поддержка F# включает в себя и другие новые быстрые исправления и контекстные действия. Подробнее об этих и других изменениях можно прочитать в полных примечаниях к версии на GitHub.
Вслед за ReSharper в Rider также обновлена проверка орфографии и грамматики. Новый инструмент поддерживает более 20 языков и находит ошибки как в естественных языках, так и в языках программирования, поддерживаемых Rider (C#, C++, VB.NET), в языках разметки (HTML, XML, XAML) и комментариях.
Инструмент визуализации коллекций в Rider 2024.1 представляет в графическом виде коллекции (массивы, списки, словари и другие перечисляемые типы), позволяя сворачивать и разворачивать элементы, просматривать отдельные значения, а также обеспечивая удобную навигацию по структуре данных. Это очень удобно, когда нужно понять состояние данных программы во время отладки и провести диагностику проблем, касающихся коллекции, манипулирования и обработки данных.
Данные о том, сколько времени тратит отладчик на выполнение кода между двумя точками останова, могут быть очень важны для отладки приложения. Если времени уходит слишком много, это может свидетельствовать о проблемах с производительностью в коде. При отладке приложения в новой версии Rider пользователь видит встроенную подсказку, показывающую время, прошедшее от предыдущей до текущей точки останова.
Начиная с этой версии, Rider позволяет настроить несколько точек останова в одной строке кода, если она содержит несколько выражений. Используйте для этого соответствующие подсказки или сочетание клавиш (Ctrl + F8).
В версии 2024.1 параметр Skip to cursor будет работать так же, как в IntelliJ IDEA. Новый встроенный параметр Run to Cursor позволяет в ходе отладки выполнить код до определенной строки. После приостановки выполнения программы наведите курсор мыши на строку, до которой нужно выполнить код. Затем откройте всплывающее окно Run to Cursor и выполняйте код до строки, где находится курсор.
Теперь при запуске и отладке приложений Blazor WebAssembly (WASM) доступна функция горячей перезагрузки (Hot Reload). Она работает для файлов .cs
, .razor
.css
(включая файлы .razor.css
с ограничением области доступа).
Функция включена по умолчанию. Ее можно настроить в меню Settings/Preferences | Build, Execution, Deployment | Hot Reload.
Дампы процессов играют важнейшую роль при отладке, позволяя проанализировать состояние программы при возникновении ошибки, даже если ее не удается воспроизвести. Раньше в Rider обрабатывались только дампы ядра C++. Теперь IDE позволяет импортировать также дампы процессов .NET.
Это можно сделать в меню Run | Debug Core Dump или просто перетащить файл дампа в редактор.
Мы добавили новую кнопку Explain with AI рядом с исключением или сообщением об ошибке, вызванным ошибкой в юнит-тесте или сбоем сборки, а также возникшим во время отладки.
При переименовании локальной переменной в окне автодополнения кода появляются варианты имен, предложенные ИИ.
Начиная с версии 2024.1, AI Assistant выведен из состава IDE в отдельный плагин. Мы сделали это для того, чтобы у вас было больше свободы в принятии решений об использовании технологий на основе искусственного интеллекта и больше контроля над собственной рабочей средой. Для использования AI Assistant по-прежнему нужна подписка на JetBrains AI.
Важные улучшения поддержки C++:
Поддержка C++ в Rider основана на движке ReSharper C++. Подробнее об изменениях — на странице Что нового в ReSharper C++ 2024.1.
Мы рады сообщить, что в стек вызовов отладчика добавлена поддержка Blueprints. Теперь в стеке вызовов в Rider будет отображаться не анонимный адрес из памяти, а информация о вызове Blueprints, чередующаяся с существующим кодом C++. Обязательно установите новую версию плагина RiderLink!
В новой версии добавлена поддержка фреймворка Slate UI для Unreal Engine: мы научили Rider использовать команды Go to Definition и Find Usages, а также рефакторинг Rename для переименования символов, объявленных макросами Slate.
Теперь Rider корректно форматирует код Slate DSL: как вызванный напрямую в результате переформатирования, так и набранный вручную.
Благодаря умной интеграции с возможностями Blueprints новая версия Rider поддерживает добавление Core Redirects при переименовании экземпляра UENUM
, а также автодополнение путей ассетов для имен ресурсов в коде C++.
Мы продолжаем расширять поддержку Perforce, и в этой версии сделан ряд улучшений для большего удобства работы: стало проще войти в систему после окончания срока действия сессии, а также добавить файлы в нужный список изменений при применении рефакторинга Rename.
Кроме того, мы исправили ошибку в UnrealBuildTool, которая иногда приводила к полной пересборке проекта, собранного ранее в Visual Studio. Теперь пользоваться обеими IDE стало гораздо удобнее. Исправление сделано в Unreal Engine 5.4 и во всех версиях Rider.
И не забудьте прочитать обо всех изменениях для C++ в движке ReSharper C++.
С огромной радостью сообщаем, что мы вместе с друзьями из Sirenix обеспечили поддержку популярного инструмента для Unity — Odin Inspector. Новая версия Rider распознает и подсвечивает поля и свойства, сериализованные с помощью Odin Inspector, обеспечивает автодополнение и инспекции для имен групп в атрибутах организации окон, а также предпросмотр класса Odin GUIColor
. Кроме того, Rider распознает атрибуты диапазона Odin и использует эти значения в своем анализе целочисленных значений, а если значение выходит за пределы диапазона — предупреждает об этом разработчика.
В Rider 2024.1 расширена поддержка ключевых слов шейдеров, появившаяся в версии 2023.3. При редактировании файлов шейдеров разработчик может включить или отключить различные ключевые слова. При этом для них включается или отключается подсветка и анализ кода в разных ветках препроцессора. В новой версии появилась поддержка неявных ключевых слов шейдера, локальных ключевых слов стейджинга, а также директив препроцессора с суффиксом _KEYWORD_DEFINED
.
Новая версия Rider иначе реагирует на возможные исключения из проверки срока жизни базового объекта игры, когда Unity выполняет сравнение с null
. Теперь Rider не будет предупреждать о том, что при проверке null
новая версия C# пропускает проверку времени жизни объекта. Вместо этого IDE выделит случаи, когда при сравнении с null
эта проверка выполняется.
В ближайшее время мы расскажем об этом подробнее в нашем блоге.
Отладка стала эффективнее, поскольку теперь Rider обеспечивает более широкую поддержку DOTS, например добавление дочернего узла Entity
при анализе экземпляра IJobEntity
на панели Watches. Кроме того, обновлены точки паузы — теперь они тоже работают с системами DOTS. Исправлены ошибки в визуализаторе значений отладки текстур, а новый инструмент визуализации коллекций помогает обрабатывать коллекции игровых объектов.
Мы также ускорили обработку ассетов, исправили ошибки в распознавании сериализованных полей, а также внесли много других мелких исправлений и улучшений. Подробнее — в журнале изменений.
Мы продолжаем расширять поддержку Godot и обновили плагин, который можно установить в настройках на вкладке Plugins. Свежие изменения:
.gd
, .tscn
, .tres
, .godot
. Улучшена подсветка для .gdshader
. launchSettings.json
(JetBrains/godot-support#125). @addTagHelper
и @removeTagHelper
Новая версия Rider умеет обрабатывать имена сборок, указанные в директивах @addTagHelper
и @removeTagHelper
в представлениях Razor. Благодаря этому пользователям доступны автодополнение кода, поиск использований и удобная навигация по коду.
Кроме того, Rider подсвечивает любые неразрешенные имена сборок в качестве предупреждения, и они сразу видны в представлениях Razor.
Теперь при создании шаблона файла Blazor Component можно сгенерировать дополнительные файлы, например .razor.cs
, .razor.css
, .razor.js
.
В Rider 2024.1 появилось несколько новых быстрых исправлений для React, которые позволяют создавать пропсы и состояния на лету. Применяйте эти исправления с помощью сочетания клавиш Alt + Enter.
Подробнее о новых возможностях для веб-разработки читайте на этой страницe.
Вот что нового ждет вас при работе с системами контроля версий в Rider:
Подробно обо всех изменениях читайте здесь.
Некоторые из главных улучшений при работе с базами данных в Rider 2024.1:
INSERT
;GROUP BY
.Подробнее об изменениях в работе с базами данных читайте на этой странице.
В .NET 8 SDK появился .NET Aspire. Это новый подход к обработке сложных проблем, связанных со сборкой распределенных приложений на стеке .NET. Стремясь поддержать это новшество, мы предлагаем новый встраиваемый инструмент : плагин .NET Aspire для Rider.
Его можно использовать с Rider 2024.1, скачав с JetBrains Marketplace или через меню Settings/Preferences | Plugins.
Подробнее о .NET Aspire и новом плагине читайте в нашем блоге.
Встроенный инструмент профилирования dotMemory теперь поддерживает функцию Frozen Object Heap (FOH), появившуюся в .NET 6 SDK. Это одно из улучшений для процесса сборки мусора.
FOH выделяет специальную область памяти для неизменяемых объектов. Эти объекты не меняются после их назначения, и их не касается сборка мусора. Благодаря поддержке этой технологии dotMemory может точнее проанализировать память, используемую неизменяемыми объектами в FOH, и эффективнее оптимизировать использование памяти.
В новой версии встроенные профилировщики dotTrace и dotMemory поддерживают приложения MAUI и .NET для macOS.
Поддерживаемые целевые фреймворки:
net8.0-windows
, net7.0-windows
.net8.0-maccatalyst
, net7.0-maccatalyst
.net8.0-macos
, net7.0-macos
.Подробнее о доступных режимах профилирования — здесь.
Новый Azure Toolkit для Rider представляет собой плагин с открытым исходным кодом, с помощью которого разработчики .NET могут легко создавать, разрабатывать, настраивать, тестировать и развертывать в Azure веб-приложения с высокой доступностью и широкими возможностями масштабирования.
Плагин можно скачать и установить прямо из JetBrains Rider. Он также доступен в JetBrains Marketplace.
В этой версии мы расширили поддержку GitHub Actions. Разрабатывая свои решения, мы стремимся расширить возможности ваших CI/CD-процессов, увеличить их эффективность и предложить умные функции, разработанные специально для GitHub Actions.
Улучшения в новой версии:
action.yml
;Подробнее — в блоге IntelliJ IDEA.
Диаграммы зависимостей типов впервые появились в версии 2023.3, а в новом релизе мы обновили способы их настройки. Теперь можно:
Подробнее о создании диаграмм зависимостей типов для вашего приложения читайте в нашем блоге.
Функция Assembly Explorer в Rider теперь поддерживает формат пакетов WebCIL для WebAssemblies.
Поддержка включает в себя:
.wasm
в Assembly Explorer;