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

Rider2024.3 поддерживает .NET 9, в том числе такие новые возможности C# 13, как коллекции params, свойства partial и предпросмотр для ключевого слова field. В новой версии для проектов .NET 6+ доступен конструктор Windows Forms, а также добавлена возможность приостанавливать и возобновлять отдельные потоки во время отладки. Разработчиков игр порадует отладка на консолях для Unreal Engine, отладка IL2CPP для Unity и улучшенная поддержка Godot. Кроме того, улучшен AI Assistant: теперь можно писать запросы прямо в редакторе и выбирать модели для общения с ИИ. Эта версия также включает улучшения для очистки кода, правил именования и удаленной разработки.

Главное

Окно Monitoring

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

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

  • Поддержка шаблонов проектов из новой SDK.
  • Создание/запуск/отладку проектов, использующих новый SDK в качестве целевого.
  • Поддержка новых возможностей C# 13, включая коллекции params, свойства partial, превью ключевого слова <0>field и другие.

Подробнее о поддержке 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 не поддерживаются.

Приостановка и возобновление отдельных потоков во время отладки

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

Запуск и отладка нативного кода на игровых консолях разработка игр Unreal Engine

Теперь в Rider можно запускать и отлаживать C++-код на всех популярных игровых консолях, включая проекты на Unreal Engine и собственных движках. Функция доступна строго по запросу и только для участников официальных программ разработки для соответствующей консоли. Подробнее

Другие возможности для разработчиков игр

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

Цветовая подсветка подсказок

Готовя эту версию, мы проверили практически все сообщения C# об ошибках, предупреждения, а также неформальные сообщения и постарались везде, где можно, добавить цветовую подсветку.

Было обновлено около 600 сообщений: к ним добавлены понятные подсказки, а фрагменты кода подсвечиваются теми же цветами, что и в редакторе.

Виджет Run: одновременный запуск нескольких конфигураций

Теперь в виджете Run можно запустить несколько конфигураций одновременно, удерживая Ctrl и нажимая на значок отладки. Кроме того, в виджете отображаются элементы управления всеми запущенными конфигурациями, и это упрощает работу.

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

Теперь в редакторе можно открыть до 30 вкладок. Когда их станет больше, IDE начнет закрывать самые старые. Изменить лимит можно в меню: Settings | Editor | General | Editor Tabs.

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

Интерфейс нового терминала стал компактнее за счет уменьшения отступов — теперь на экране больше места для команд и с ними удобнее работать.

Поддержка C#

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

В новой версии Rider добавлена поддержка свежих возможностей языка, появившихся в C# 13:

  • Новые коллекции params: ключевое слово params теперь работает с разными типами коллекций, что позволяет создавать более эффективные сигнатуры методов без выделения дополнительных ресурсов.
  • Свойства partial: теперь можно размещать аксессоры для одного свойства в нескольких файлах, что делает организацию кода более гибкой и структурированной.
  • Новый тип блокировки: введен новый тип System.Threading.Lock для более эффективной синхронизации потоков. Его производительность выше, чем у традиционного выражения lock.
  • Приоритет разрешения перегрузки: новый атрибут позволяет лучше контролировать выбор перегрузки метода и задавать приоритет для вызова нужной перегрузки в сложных ситуациях.
  • Ключевое слово field: с помощью нового ключевого слова field можно напрямую обращаться к внутренним полям автосвойств, что упрощает логику свойств.

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

Стили и очистка кода

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

Функции очистки кода в Rider 2024.3 были переработаны и теперь работают эффективнее. Теперь они используют тот же движок, что и соответствующие быстрые исправления. Это гарантирует тщательное устранение ошибок и более точный анализ. Кроме того, для оптимизации обработки файлов добавлена параллельная предварительная обработка.

Кроме того, в новой версии можно выбрать отдельные профили очистки кода для разных файлов или исключить некоторые файлы из очистки.

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

Новые параметры форматирования обеспечат дополнительную гибкость:

  • новый параметр управления обертыванием вокруг оператора равенства =;
  • новый параметр Indent ‘break’ from ‘case’;
  • новый параметр Treat ‘case’ statements with ‘break’ as simple.

Правила именования

Мы добавили несколько новых параметров для более точной настройки правил именования.

  • У локальных функций теперь два варианта: Local functions with ‘async’ и Task-returning local functions (not ‘async’).
  • Методы получили новый параметр Task-returning method (not ‘async’) для поддержки методов с суффиксом async в имени, если они не помечены модификатором async, но возвращают Task-подобный тип. Это удобно, если вы объявляете метод в интерфейсе, где нельзя использовать модификатор async, при этом в реализации метод будет возвращать тип Task.

Комментарии к коду

Поддержка многострочных комментариев TODO

Версия Rider 2024.3 поддерживает многострочные комментарии To-do, позволяя обрабатывать текст с отступом, расположенный на идущих подряд строках, как единый объект To-do. Благодаря этому сгруппировать связанные примечания и задачи в кодовой базе стало проще. Теперь к объектам To-do можно добавить контекст на нескольких строках. Это упрощает их чтение и организацию.

Поддержка F#

Мы обновили службу компилятора F#, чтобы в инструментах редактора были доступны все новейшие возможности языка и улучшения.

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

Теперь поддержка F# включает в себя подсказки возвращаемых типов для паттернов и членов. Типы локальных значений легко посмотреть благодаря новой реализации Push-to-Hint.

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

Функция автодополнения кода теперь может импортировать функции, значения, элементы union и активные паттерны. Кроме того, появилось быстрое исправление, позволяющее обновить вставленный код.

С помощью нового контекстного действия можно преобразовать выражение функции в параметр.

Совместимость с C#

Мы заметно улучшили производительность анализа проектов на C#, на которые ссылается ваш код, и исправили различные ложные срабатывания проверок.

Другие изменения, исправления и новые функции перечислены на странице GitHub.

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

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

Теперь на начальном экране IDE отображается название текущей ветки, что помогает лучше ориентироваться при работе с разными версиями проекта и упрощает переключение между рабочими директориями.

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

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

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

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

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

Бета-тестирование функции удаленной разработки в Rider официально завершено!

Мы закончили последний этап доработок по итогам бета-тестирования, уделив особое внимание стабильной работе при наборе кода, и теперь функция удаленной разработки в Rider полностью готова к работе со всеми основными процессами разработки, которые вы используете.

Все задачи — от редактирования кода и отладки до управления версиями — теперь решаются практически так же просто, как и на локальной машине. Работать в удаленных средах можно удобно и эффективно.

Подробнее о поддерживаемых рабочих процессах — в нашем блоге.

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

Unreal Engine

В этой версии появилась автоматическая отладка дочерних процессов в Windows. Любые процессы, созданные во время сеанса отладки, включаются в этот сеанс, и точки останова в дочерних процессах обрабатываются как обычно.

Можно также настроить правила, определяющие, какие дочерние процессы включаются в отладку, а какие нет.

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.

Подробнее о новых функциях анализа кода читайте здесь: Что нового в ReSharper C++ .

Unity

Rider 2024.3 расширяет возможности отладки сборок IL2CPP: теперь для них предоставляются те же функции, что и для сборок Mono. Вы увидите в отладчике узлы Active Scene и this.gameObject, а также Children и Components для экземпляров GameObject. Также исправлены проблемы с окном Immediate, представлением Collection и сборками IL2CPP.

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

Godot

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

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

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

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

Теперь Rider по умолчанию исключает папку node_modulesиз поиска по файлам в директориях проекта, убирая лишние файлы из выдачи. Если вы хотите вернуть прежнее поведение, включите опцию 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 выделены другим цветом, а на полях рядом с ними есть кнопка отмены. Кроме того, вы можете самостоятельно отредактировать результаты запроса в этой же области. Ваши изменения будут выделены точно так же. Например, можно попросить AI Assistant получить больше данных с помощью запроса, а затем добавить к полученному результату условие ORDER BY.

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

В область сообщения об ошибке мы добавили пару новых действий для обработки ошибок, возникших при выполнении SQL-запросов, с помощью AI Assistant. Explain with AI открывает чат с ИИ, автоматически отправляет запрос и показывает объяснение ошибки, составленное AI Assistant. а Fix with AI генерирует исправление в редакторе.

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

AI Assistant

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

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

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

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

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

Код IL для манифеста сборки

Теперь в окне IL Viewer показывается код IL манифеста сборки, в том числе:

  • информация о сборке и модуле — имя, пользовательские атрибуты и т. п.;
  • сборки и модули, на которые имеются ссылки;
  • перенаправляемые типы;
  • список файлов и ресурсов.

Этот код IL отображается, когда курсор в текстовом редакторе наведен на атрибут сборки или модуля или находится где-то в пределах файла <AssemblyName>.cs (для внешних сборок).

Поддержка первичных конструкторов

При работе с классами, объявляющими первичный конструктор, новая версия декомпилятора правильно отображает сам конструктор и его параметры, так что вы получаете полное представление об экземплярах объектов прямо из декомпилированного кода.