Что нового в Rider 2024.3

Rider 2024.3 delivers support for .NET 9, including such C# 13 enhancements as params collections, partial properties, and the preview field keyword. The Windows Forms Designer is now available for .NET 6+ projects, along with an advanced debugging capability to freeze and unfreeze individual threads. Game developers will be happy to see console debugging for Unreal Engine, IL2CPP debugging for Unity, and improved Godot support. This release also brings expanded AI Assistant functionality, including in-editor AI prompts and customizable chat models. Enhancements for code cleanup, naming conventions, and remote development round out the release.

Главное

Окно Monitoring

Поддержка .NET 9

В новой версии Rider появились такие возможности:

  • Поддержка шаблонов проектов из новой SDK.
  • Создание/запуск/отладку проектов, использующих новый SDK в качестве целевого.
  • Support for the latest C# 13 features, such as params collections, partial properties, the field keyword preview, and others.

Подробнее о поддержке C# 13 в Rider 2024.3 читайте в нашем блоге.

Windows Forms Designer for .NET projects .NET 6.0+

Конструктор Windows Forms теперь поддерживает проекты, предназначенные для .NET 6.0 и более поздних версий, и позволяет создавать, просматривать и изменять интерфейс приложений Windows Forms. Вы получаете практически те же возможности, что и в классическом конструкторе Windows Forms для .NET Framework.

Имейте в виду, что Rider поддерживает большинство элементов управления DevExpress, а вот для Telerik и Infragistics поддержка пока ограничена. Приложения VB.NET Windows Forms не поддерживаются.

Ability to freeze and unfreeze individual threads during debugging

В Rider 2024.3 можно «замораживать» и «размораживать» потоки во время отладки, что дает больше контроля над многопоточными приложениями. Просто нажмите правой кнопкой на нужном потоке и выберите Freeze, чтобы приостановить его выполнение — остальные потоки продолжат работу. Когда понадобится, снова нажмите правой кнопкой и выберите Unfreeze, чтобы возобновить выполнение потока. Функция доступна только для проектов, разрабатываемых под .NET и .NET Framework.

Running and debugging native code on consoles Game dev Unreal Engine

Rider 2024.3 has reached a massive milestone by introducing support for running and debugging C++ on all major consoles! This includes games written with custom engines and Unreal Engine. Availability is strictly by request, and you must be part of the console’s official development program. Подробнее

More updates for game development

Взаимодействие с IDE

Tooltip colorization

For this release we reviewed almost all C# error, warning, and informal messages and introduced text colorization wherever possible.

Approximately 600 messages were upgraded with tooltips that are structured for easier reading and include the familiar colors from the editor for the included code elements.

Run widget: Launch multiple configurations simultaneously

The updated Run widget now allows multiple configurations to be launched simultaneously by holding Ctrl and clicking the debug icon. It also displays the controls for all running configurations, simplifying management.

Больше открытых вкладок

The default tab limit in the editor has been increased to 30, allowing more tabs to stay open before the IDE closes the least recently used ones. You can adjust this in Settings | Editor | General | Editor Tabs.

Обновленный интерфейс терминала

We've updated the new terminal's UI with a more compact design, reducing padding to optimize the use of your screen. теперь на экране больше места для команд и с ними удобнее работать.

Поддержка C#

Обновления С#13

With its latest release, Rider introduces support for the latest features that come with C# 13, namely:

  • New params collections: The params keyword has been expanded to work with various collection types, allowing for more efficient method signatures without additional allocations.
  • Partial properties: Support has been added for partial properties, enabling you to spread property accessor implementations across multiple files, increasing flexibility and organization in your codebase.
  • New lock type: The new System.Threading.Lock type has been introduced for more efficient thread synchronization, improving performance over the traditional lock statement.
  • Overload resolution priority: A new attribute is available, providing better control of method overload resolution and allowing developers to prioritize which overload gets called in complex scenarios.
  • field keyword: The preview feature has been added to the field keyword. This gives direct access to the backing field of auto-properties, simplifying property logic.

Learn all about the support of C#13 features in Rider and ReSharper on our blog.

Code styles and cleanup

Очистка кода с помощью Code Cleanup

In Rider 2024.3, code cleanup has been re-engineered for more robust performance. It now leverages the same engine as scoped quick-fixes, ensuring thorough issue resolution and enhancing analyzer precision. Parallel preprocessing has also been added to optimize file handling.

Additionally, you can now select the Code Cleanup profile per file or skip cleanup on specific files.

Форматирование кода

There are new formatting options to give you even more flexibility:

  • New option to control wrapping around an equal = operator.
  • New Indent ‘break’ from ‘case‘ option.
  • New Treat ‘case’ statements with ‘break’ as simple option.

Naming styles

We’ve added a couple of new options to adjust naming rules more precisely.

  • Local functions now come with two options: Local functions with ‘async’ and Task-returning local functions (not ‘async’).
  • Methods have been given a new Task-returning method (not ‘async’) option to support methods with an async suffix in the name that aren’t marked with an async modifier but return a Task-like type. This is helpful when you declare a method in an interface where you aren’t allowed to use an async modifier, but which will return a Task type in implementation.

Code comments

Multiline TODO comments support

Rider 2024.3 now supports multiline TODO comments, allowing indented text on subsequent lines to be treated as part of the same TODO item. This enhancement makes it easier to group related notes and tasks together in your codebase. You can now add context to your TODOs across multiple lines, improving readability and organization.

Поддержка F#

We’ve updated the F# compiler service to get all the recent language features and improvements to the editor tooling.

Подсказки типов

F# support now shows inferred type hints for patterns and members. It’s easy to see the local value types with the new Push-to-Hint implementation.

Редактирование кода

Code completion can now import functions, values, union cases, and active patterns. There is also a new quick-fix that helps update the pasted code.

You can convert a function expression to a parameter and match it with a new context action.

C# interop

We’ve significantly improved performance when analyzing referenced C# projects and fixed various false positive errors.

More changes, fixes, and new features are listed on the GitHub page.

Управление версиями

Название ветки на начальном экране

The Welcome screen now shows the branch name, helping you stay organized when handling multiple project versions and allowing you to switch between working directories easily.

Отключение фоновых проверок перед коммитом

Вы можете управлять фоновыми проверками в процессе коммита с помощью новой опции Run advanced checks after a commit is done в разделе Settings | Version Control | Commit. Она позволяет запускать тесты и инспекции после коммита. Если вы хотите, чтобы проверки завершались до коммита, просто отключите эту опцию.

Обновленный поиск по файлам

Теперь у функции Find in Files есть новый режим — Project Files Excluding Git-Ignored. Из поиска исключаются файлы, указанные в .gitignore, помогая вам сосредоточиться только на нужном коде.

Удаленная разработка

Rider’s remote development is officially out of Beta!

After a final round of refinements during Beta – with particular attention to typing stability – Rider’s remote development functionality is now fully equipped to handle all core development workflows you rely on.

From code editing and debugging to version control, everything now operates almost as seamlessly as it would on a local instance, providing a smooth and powerful experience in remote environments.

You can read more about the supported workflows on the blog.

Разработка игр

Unreal Engine

This release brings automatic debugging of child processes on Windows. Any processes created during a debug session will join the session, and breakpoints in the child process will be hit.

It’s also possible to configure rules to decide which child processes to debug and which ones to skip.

In addition to the exciting news about Rider’s support for debugging on consoles, this release also introduces support for the Verse programming language, new code insight features, and integration with Live++ for the hot-reload of C++ applications.

To learn more about the new code insight features, take a look at What's New in ReSharper C++.

Unity

Rider 2024.3 improves your debugging experience with IL2CPP builds, providing the same features you get with Mono. This means you will see Active Scene and this.gameObject nodes in the debugger, as well as Children and Components for GameObject instances. It also fixes issues with the Immediate window, the Collection view, and IL2CPP builds.

Исходные файлы теперь открываются в Rider, если дважды кликнуть по объекту в стеке вызовов профилировщика Unity, и Rider лучше фильтрует ненужный контент при поиске файлов в проекте.

Godot

В этой версии исправлена серьезная ошибка, связанная с поддержкой Hot Reload в C# и Godot. Теперь Rider будет применять все изменения, внесенные вами в код C#, пока игра все еще запущена.

Rider также готов к работе с обновлениями отладки GDScript, которые появятся в Godot 4.4, для более полного отображения свойств объектов по сравнению с предыдущими версиями Godot.

Веб-разработка

Поиск по проекту без лишних файлов

Rider now excludes node_modules results by default when using Find in Files in project directories, reducing clutter from irrelevant files. Если вы хотите вернуть прежнее поведение, включите опцию Search in library files when “Directory” is selected in Find in Files в разделе Settings | Advanced Settings.

Переименование компонентов фреймворков и навигация по ним

Мы улучшили подсказки в редакторе для компонентов Vue, Svelte и Astro. Действие Show component usages теперь находит использования как в импортированных файлах, так и в шаблонах разметки. Мы также добавили фильтр Show Component Usages, который позволяет исключать упоминания компонента при поиске обычных ссылок на файлы. Кроме того, в рефакторинг Rename добавлена опция, которая позволяет автоматически обновлять все упоминания компонента при переименовании его файла.

Превью цвета для классов Tailwind CSS

Теперь в редакторе отображается превью цвета для классов Tailwind CSS — так их проще различать. Мы добавили поддержку метода textDocument/documentColor из протокола языкового сервиса (LSP), поэтому теперь все плагины на базе LSP автоматически поддерживают эту функцию.

Подробнее об этом читайте на странице Что нового в WebStorm.

Работа с базами данных

Генерация SQL-кода по текстовому запросу: подсветка сгенерированных изменений в редакторе

Мы упростили работу с AI Assistant в редакторе. Теперь, когда вы просите AI Assistant внести отредактировать фрагмент кода, в редакторе отображается diff, где виден исходный и сгенерированный код. Предложения AI Assistant выделены другим цветом, а на полях рядом с ними есть кнопка отмены. You can also edit the resulting query yourself in the same area. Ваши изменения будут выделены точно так же. For example, you can ask AI Assistant to retrieve more data with a query and then add an ORDER BY clause to the generated result.

Обработка ошибок SQL с помощью AI Assistant

We have implemented a couple of useful actions for handling SQL query execution errors with AI Assistant, which are accessible in the error message area. Explain with AI opens the AI chat with an automatically sent prompt and AI Assistant’s response providing an explanation of the error. а Fix with AI генерирует исправление в редакторе.

Подробнее об этом читайте на странице Что нового в DataGrip.

AI Assistant

Плагин .NET Aspire для Rider

Встроенные обращения к ИИ

Rider 2024.3 introduces inline AI prompts, offering a seamless way to interact with AI Assistant directly in the editor. Просто напишите запрос обычным языком, и AI Assistant сразу же сгенерирует нужный код, выделив изменения фиолетовым цветом. При этом AI Assistant учитывает контекст, автоматически добавляя связанные файлы и символы для более точной генерации кода.

Улучшенное управление контекстом

В этом обновлении мы упростили управление контекстом, который AI Assistant использует для своих предложений. Переработанный интерфейс позволяет легко управлять всеми элементами, включенными в контекст. Открытый файл и выделенный в нем код автоматически включаются в контекст, и вы можете легко добавлять или удалять файлы по своему усмотрению. Кроме того, теперь можно добавлять общие инструкции для проекта, чтобы ваши указания для AI Assistant учитывались по всей кодовой базе.

Выбор модели для чата с ИИ

Теперь можно выбрать предпочтительную модель для чата с ИИ: Google Gemini, OpenAI или локальную модель на вашем устройстве. Это позволяет адаптировать чат под ваши потребности и сделать работу с ИИ более удобной.

Декомпилятор

IL code for assembly manifest

The IL Viewer tool window now provides IL code for assembly manifest, including:

  • Assembly and module info such as name, custom attributes, etc.
  • Referenced assemblies and modules.
  • Forwarded types.
  • A list of files and resources.

This IL code is shown when the caret in the text editor is on an assembly or module attribute or somewhere inside an <AssemblyName>.cs file for external assemblies.

Support for primary constructors

When working with classes that declare a primary constructor, the Decompiler will now display the constructor and its parameters correctly, giving you a complete view of how objects are instantiated directly from the decompiled code.