Что нового в Rider

В Rider 2023.1 улучшена поддержка C#, в том числе добавлен ряд инспекций для оптимизации и ускорения работы с разными типами коллекций, а также новые настраиваемые способы добавления проверок на null. Чтобы в Rider было удобнее разрабатывать игры, в новой версии добавлена поддержка Unity’s Data Oriented Tech Stack (DOTS) и Unreal Engine 5.2, включая недавние обновления формата файлов Blueprints. Кроме того, появилась поддержка Godot 4 и ряд других улучшений, которые наверняка оценят разработчики игр. Еще в новой версии IDE улучшен редактор, инструменты контроля версий и работы с Docker, усовершенствован новый интерфейс и в целом стало гораздо удобнее работать.

Главное

Поддержка Unity DOTS Разработка игр

Unity постепенно переходит от объектно-ориентированного проектирования к проектированию на основе данных, поэтому в Rider 2023.1 добавлена поддержка многопоточного стека Data Oriented Tech Stack (DOTS). Это совершенно новый подход к разработке игр, снижающий нагрузку на ЦП.

Подробнее

Сокращение числа объектов Lookup в коллекциях

Сокращение числа объектов Lookup в коллекциях Поддержка C#

Мы добавили инспекции с быстрыми исправлениями для оптимизации и ускорения работы с коллекциями за счет уменьшения количества объектов Lookup. Например, Rider предложит удалить избыточные проверки Contains и ContainsKey или использовать вместо них методы TryAdd и TryGetValue.

Виджет VCS для Perforce Контроль версий

В новой версии расширена интеграция между Rider и Perforce: мы добавили Perforce в виджет систем контроля версий (VCS). Виджет VCS для Perforce обеспечивает быстрый доступ к основным действиям, таким как Commit, Revert и Update Project. Кроме того, он показывает текущее рабочее пространство и статус соединения.

Визуализация строковых переменных Отладчик

Во время сеанса отладки теперь можно визуализировать значения строковых переменных HTML, XML, JSON, JWT или URL-кодировки. Просто нажмите на ссылку View рядом со строкой на вкладке Threads & Variables в окне отладчика или на ссылку View, которая появляется при наведении курсора на переменную в редакторе.

Поддержка C#

Сокращение числа объектов Lookup в коллекциях

Новый набор инспекций с быстрыми исправлениями поможет оптимизировать и ускорить работу с разными типами коллекций за счет уменьшения количества объектов Lookup в коллекциях:

  • Удаляйте проверку Contains(item) перед добавлением элемента в HashSet или другие коллекции, в которых реализован интерфейс ISet.
  • Удаляйте проверку ContainsKey(key) перед добавлением элемента в Dictionary или другие коллекции, в которых реализован интерфейс IDictionary.
  • Где возможно, используйте TryAdd(key, value) для коллекций Dictionary или унаследованных от Dictionary.
  • Используйте TryGetValue(key, out value) для коллекций IDictionary, когда это возможно.

Настройка Syntax style для шаблонов проверки на null

Чтобы обеспечить единство стиля проверок not null в шаблонах, мы добавили новую настройку Syntax style. Она предлагает на выбор два варианта: пустой рекурсивный синтаксис шаблона { } и шаблон с отрицанием not null, при этом по умолчанию используется последний. Изменить настройки можно в любой момент на вкладке Settings/Preferences | Editor | Code Style | C# | Syntax Style.

При использовании шаблона not null возникает одна сложность: в отличие от рекурсивного шаблона { LastName: { } lastName }, он не позволяет вставлять имена переменных в качестве проверяемого значения. Мы добавили контекстное действие Add pattern variable поверх шаблона not null, чтобы можно было найти выражения, которые получают доступ к тому же значению (поскольку мы вводим имя переменной), и заменить вновь введенным именем, консолидировав все случаи доступа к этому значению.

Стиль ArgumentNullException.ThrowIfNull для проверок на null

Стиль ArgumentNullException.ThrowIfNull для проверок на null

В .NET 6.0 SDK появился новый API для проверок на null: ArgumentNullException.ThrowIfNull. Наш движок анализа кода с самого начала распознавал этот вариант проверок, но использовать этот API в качестве стиля по умолчанию для проверок на null, проводимых Rider, было нельзя.

В версии 2023.1 мы добавили в меню Settings/Preferences | Editor | Code Style | C# | Null checking шаблон ArgumentNullException.ThrowIfNull.

Extract common property pattern

Исправление Extract common property pattern

Если вы активно используете сопоставление свойств с образцом, попробуйте новую инспекцию с быстрым исправлением для извлечения общих элементов из нескольких шаблонов свойств, когда они встречаются в потоке кода. Код, созданный с помощью быстрого исправления Extract common property pattern, поможет сократить количество повторений за счет переноса общих шаблонов свойств в шаблоны более высокого уровня.

Удаление пустых директив region

Удаление пустых директив region

Разработчики C# часто используют директиву #region и сворачивание кода в IDE, чтобы структурировать свой код. В результате рефакторинга некоторые директивы #region остаются пустыми, и код в свернутом виде может выглядеть странно. Новая инспекция кода позволяет найти пустые директивы #region в свернутом состоянии и применить быстрое исправление для очистки кода.

Замена span.SequenceEqual(“str”)

Замена span.SequenceEqual(“str”)

В анализ кода теперь добавлена новая инспекция, которая предложит заменить span.SequenceEqual("stringLiteral") на span is "stringLiteral" — более аккуратное и удобное синтаксическое решение в C#, чем вызов функции.

Вставка спецификации типа возвращаемого значения для лямбд

Вставка спецификации типа возвращаемого значения для лямбд

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

Для этого мы добавили в версию 2023.1 контекстное действие Insert return type specification. Действие можно применять ко всем областям доступа, включая методы, классы, файлы, проекты или целые решения.

Инспекция Pattern is redundant

Инспекция Pattern is redundant

Шаблоны C# or/and/not удобно использовать для компактных проверок значений, но их сложнее распознать, чем такие традиционные выражения, как ||/&&/!. Кроме того, если пропущены скобки, они могут стать причиной ошибок, которые трудно найти. Чтобы с этим было легче справиться, мы добавили новую возможность анализа кода, которая предупреждает о «мертвых» проверках в сложных шаблонах.

Контекстное действие Convert to list pattern

Контекстное действие Convert to list pattern

Мы продолжаем улучшать поддержку шаблонов списков C# 11. С помощью нового контекстного действия Convert to list pattern можно превратить проверки длины коллекции в шаблон списка. Действие можно использовать в любом контексте, допускающем проверку длины коллекции.

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

Unity

Поддержка DOTS

Внедрение Data-Oriented Tech Stack (DOTS) — важнейшее изменение архитектуры Unity. Стек обеспечивает хранение данных компонентов в непрерывных векторах, в результате системы получают к ним доступ и могут изменять их, тратя меньше ресурсов ЦП. Это повышает производительность, особенно при работе с крупными проектами.

В этой версии мы добавили поддержку Unity DOTS, чтобы укрепить репутацию Rider как самой инновационной IDE для разработки игр.

Пользователи Rider 2023.1 получают следующие новые функции:

  • новые шаблоны файлов;
  • Code Vision для типов DOTS;
  • автоматическая генерация компонентов авторинга для кода маппинга запекания;
  • инспекции и быстрые исправления, которые помогают писать и обновлять кодовые базы с использованием нового стиля DOTS.

Подробнее обо всех особенностях работы с DOTS в Rider — в нашем блоге и демо.

Отладка на Android-устройствах через USB

Отладку игр под Android можно выполнять через WiFi, но иногда удобнее использовать проводное подключение. Версия Rider 2023.1 поддерживает отладку игр под Android через USB.

В диалоге Attach to Unity Process можно посмотреть, какие проекты запущены на подключенных устройствах, и начать отладку.

Временные конфигурации запуска для подключенных игроков

Временные конфигурации запуска для подключенных игроков

Rider 2023.1 автоматически создает временные конфигурации запуска при отладке игрока через диалоговое окно Attach to Unity Process. Благодаря этому проще запустить еще один сеанс отладки. Конфигурацию запуска можно сохранить, чтобы сделать ее постоянной, а также поделиться ею с командой. Это работает для всех поддерживаемых игроков, включая десктопы, мобильные устройства, консоли и USB-устройства (iOS или Android).

Документация

Документация

Rider уже предлагает пользователям онлайн-документацию для библиотек базового класса .NET и основного API Unity. В новой версии мы добавили также быстрый доступ к онлайн-документации по пакетам реестра Unity, включая DOTS. Ссылки на документацию можно просмотреть, нажав F1 или во всплывающем окне Quick Documentation, которое появляется при наведении курсора на символ.

Как и остальная часть решения, поддержка Unity в Rider локализована на японский, корейский и китайский. Это касается в том числе и той части документации для API Unity и онлайн-справки, для которой доступен перевод.

Шаблоны файлов для UI Toolkit

Начиная с Unity 2022.2, рекомендуется писать UI-расширения для редактора Unity с помощью UI Toolkit. Чтобы помочь вам в этом, мы добавили 3 новых настраиваемых шаблона файлов на основе UI Toolkit: создание окон редактора, секций свойств и пользовательских редакторов инспекторов. Они доступны только в Unity 2022.2 и более поздних версий. IMGUI-версии можно использовать по-прежнему.

И это еще не все!

Как обычно, мы сделали множество других изменений и улучшений, например, более точное выявление сериализованных полей в коде, включая сложные сценарии с использованием производных типов и атрибута [SerializeReference]. Кроме того, мы также улучшили поддержку поиска использований C#-кода в анимациях Unity и подсветки методов как обработчиков событий. Мы реализовали также изменение, о котором часто просили пользователи: теперь движок форматирования помещает атрибуты [Header] на отдельную строку.

Unreal Engine

Мы поддержали Unreal Engine 5.2

Epic Games включили UnrealHeaderTool (UHT) в UnrealBuildTool (UBT) в версиях Unreal Engine 5.1 и 5.2. Rider 2023.1 поддерживают эти изменения, а интеграция UHT в Rider будет работать для новых версий Unreal Engine. Rider также поддерживает свежие обновления формата файлов Blueprints, которые будут включены в Unreal Engine 5.2.

Контекстное действие New UE class

Мы переработали контекстное действие Unreal Class…. Теперь оно предлагает на выбор несколько родительских классов, а также дает возможность указать, является ли класс открытым или закрытым. В целом по внешнему виду и функциональности диалог теперь приближен к своему аналогу в Unreal Engine.

Парсинг ошибок в файлах Blueprint

Если файл Blueprint не может быть корректно проанализирован Rider, ошибки анализа теперь отображаются на отдельной вкладке Blueprints в окне Problems View. Это позволяет находить проблемные файлы в нативном окне проводника файловой системы. Каждый случай сопровождается кратким описанием обнаруженной ошибки.

Парсинг сообщений компиляции Clang

Парсинг сообщений компиляции Clang

Версия Rider 2023.1 может разбирать сообщения, сгенерированные компилятором Clang при сборке игр Unreal Engine на macOS и Linux. Теперь все предупреждения и ошибки, поступающие от Clang в окно Build Output, распознаются корректно, включая ссылки на файлы. Дважды щелкнув по ссылке, можно перейти к тому месту в коде, которое вызвало ошибку или предупреждение.

Предварительный просмотр макроподстановки

Предварительный просмотр макроподстановки

Наведя курсор на макрос, можно увидеть в окне подсказки предпросмотр его раскрытия с полной подсветкой синтаксиса и правильным форматированием кода. Макрос можно, как и раньше, раскрыть прямо в редакторе с помощью контекстного действия Substitute macro call, но мгновенный предварительный просмотр упрощает работу.

Шаблон Live Template UInterface

Шаблон Live Template UInterface

В новой версии Rider появился встроенный шаблон Live Template UInterface для решений Unreal Engine. Как и существующие шаблоны Live templates UCLASS, USTRUCT и UENUM, UInterface позволяет быстро добавить новый класс интерфейса, соответствующий стандарту Unreal Engine. В результате пользователь экономит время и силы, ведь ему не нужно создавать этот класс вручную.

Сопоставление шейдеров

Теперь пользователь может настроить маппинг для виртуальных и физических директорий шейдеров. Если в проекте игры или движка установлен RiderLink, сведения о сопоставлениях шейдеров можно загрузить из Unreal Engine.

Godot

Godot Плагин

В новой версии плагина Godot для Rider сделаны следующие изменения и улучшения:

  • улучшено автодополнение кода для res://, чтобы повысить удобство его использования и область видимости. Для некоторых известных вызовов API, в том числе GD.LoadPackedScene, автодополнение строковых литералов будет доступно сразу, еще до набора префикса res://;
  • Godot 4 использует вместо Mono среду выполнения .NET6, поэтому внесены изменения для обеспечения такого перехода. Когда при отладке приложения Godot срабатывает точка останова, в окне Immediate автоматически создается Current Scene. Кроме того, у любого узла Godot.Node в окне Immediate теперь есть дополнительная группа Children, которую можно использовать для раскрытия его детей и рекурсивно их детей.

Редактор кода

Отображение знаков пробела только в выделенном коде

Отображение знаков пробела только в выделенном коде

Добавлен новый флажок Selection в разделе Settings/Preferences | Editor | General | Appearance | Show Whitespaces. Если его установить, Rider будет отображать пробелы в виде маленьких точек только при выделении кода.

Предпросмотр цвета и кисти

Предпросмотр цвета и кисти

Редактор кода в Rider теперь отображает превью цветов и кистей для значений и ссылок в файлах Avalonia XAML (.axaml) и C#, так же как и в WPF-приложениях.

Возможность скрыть подсказки по преобразованию типов

Возможность скрыть подсказки по преобразованию типов

В Rider теперь можно скрывать подсказки по преобразованию типов для выбранных операторов. Для этого поместите курсор рядом с оператором и нажмите Alt+Enter для вызова контекстного меню, а затем перейдите в Configure Inlay Hints | Type Conversion Hints и выберите действие Hide for….

Или зайдите в Settings/Preferences | Editor | Inlay Hints | C# | Type Conversion Hints, чтобы настроить список операторов, для которых вы хотите скрыть подсказки по преобразованию типов.

Отключение проверки орфографии для хешей и специальных значений

Отключение проверки орфографии для хешей и специальных значений

Инспекция Typo больше не применяется к хешам и специальным значениям, и IDE не сообщает об их неправильном написании. Это обновление распространяется на следующие значения:

  • шестнадцатеричные значения Md5, Sha1 и Sha256;
  • закодированные в формате Base64 значения Sha384 и Sha512 с префиксом shaNNN-;
  • токены JWT.
Подсказки имен параметров для атрибутов xUnit

Подсказки имен параметров для атрибутов xUnit

Как и в случае с NUnit, Rider теперь показывает подсказки имен параметров для атрибутов InlineData и InlineAutoData в тестах xUnit.

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

Импорты при автодополнении кода для Angular

Теперь при работе с глобальными и экспортированными символами в шаблоне Angular, Rider автоматически добавит импорт для них в ваш компонент, когда вы пользуетесь автодополнением или быстрыми исправлениями.

Поддержка TypeScript в шаблонных выражениях Vue

Rider 2023.1 поддерживает TypeScript в выражениях Vue-шаблонов. Шаблонные выражения Vue теперь синхронизируются с lang=”ts” при добавлении в script-теги. В результате Rider может лучше обрабатывать TypeScript, предоставляя настройки и рефакторинги, соответствующие тому, что находится внутри тега. Вы могли заметить, что раньше между настройками и рефакторингами для чистых файлов .js и .ts были различия. Теперь атрибуты lang будут совпадать.

Автоматическое преобразование строк в шаблонные литералы

Автоматическое преобразование строк в шаблонные литералы

Rider теперь автоматически преобразовывает строки с одинарными или двойными кавычками в шаблонные литералы всякий раз, когда вы вводите ${. Это работает как для простых строк, так и для свойств JSX.

Подробнее о новых возможностях для веб-разработки читайте в релизном блог-посте WebStorm 2023.1.

Улучшения пользовательского интерфейса

Изменение масштаба всей IDE

Изменение масштаба всей IDE

Теперь в Rider можно увеличивать и уменьшать размер всех элементов интерфейса одновременно. Для этого выберите View | Appearance в главном меню и настройте нужный масштаб.

Новая возможность зафиксировать размер окон инструментов

Возможность зафиксировать размер окон инструментов

Мы добавили новую опцию, которая позволяет зафиксировать ширину боковых окон инструментов или сохранить возможность их менять. Вы найдете новый флажок Remember size for each tool window в разделе Settings/Preferences | Appearance & Behavior | Tool Windows.

Поиск действий в Search Everywhere на основе машинного обучения включен по умолчанию

Поиск классов в Search Everywhere с использованием машинного обучения включен по умолчанию

Чтобы вы получали наиболее релевантные и точные результаты поиска, мы продолжаем работу по интеграции машинного обучения в Search Everywhere (двойное нажатие Shift). Как и на вкладках Actions и Files, стандартный алгоритм сортировки на вкладке Classes теперь тоже основывается на машинном обучении.

Изменения в новом интерфейсе Бета-версия

Разделение окон инструментов по вертикали

Разделение окон инструментов по вертикали

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

Чтобы добавить окно в эту область и разместить его в нижней части, перетащите значок окна вниз по боковой панели и опустите под разделитель. Можно сделать и по-другому: кликните правой кнопкой по значку и в открывшемся меню выберите новое положение окна с помощью действия Move to.

Компактный режим

Compact Mode

Для удобства работы на небольших экранах, мы добавили компактный режим, в котором новый интерфейс Rider выглядит более аккуратно и лаконично: мы сузили панели инструментов и заголовки окон, сократили отступы и интервалы, а также уменьшили кнопки и значки.

Чтобы включить компактный режим, войдите в меню View и выберите Appearance | Compact Mode.

Вкладки проектов на macOS

Вкладки проектов на macOS

Мы реализовали в новом интерфейсе один из самых популярных запросов — вкладки проектов для пользователей macOS. Если у вас открыто несколько проектов, теперь можно легко переключаться между ними с помощью вкладок, расположенных под главной панелью инструментов.

Отображение скрытых вкладок

Отображение скрытых вкладок

Мы добавили в новый интерфейс опцию Show Hidden Tabs. На панели вкладок теперь есть выпадающий список, в котором перечислены все открытые вкладки. Раньше они могли быть скрыты.

Переработанный виджет запуска

Мы изменили дизайн виджета Run в заголовке главного окна и использовали более спокойные цвета, чтобы он не бросался в глаза.

Инструменты контроля версий

Улучшенный рабочий процесс код-ревью для GitHub

В Rider 2023.1 мы усовершенствовали процесс ревью кода в IDE. Проведенные исследования показывают, что в тех случаях, когда пользователям необходимо просмотреть код, они обычно переключаются между GitHub и IDE. Мы упростили этот процесс, переработав окно Pull Requests.

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

Автодополнение в диалоге Create New Branch

Автодополнение в окне Create New Branch

В Rider 2023.1 работает автодополнение во всплывающем окне Create New Branch. Как только вы начнете вводить имя новой ветки, IDE предложит подходящие префиксы на основе имен существующих локальных веток.

Улучшенное окно Branches

Улучшенное окно Branches

Всплывающее окно Branches стало более удобным. В частности, вам будет проще перемещаться между ветками, потому что теперь они сгруппированы и хранятся в раскрываемых списках.

Инструменты для работы с базами данных

Сравнение схем баз данных

Schema Compare — важный инструмент для разработки и обслуживания баз данных. Он позволяет сравнивать две базы данных, чтобы быстро находить различия между ними, обеспечивать отсутствие несоответствий и поддерживать данные в актуальном состоянии.

Rider 2023.1 поддерживает Schema Compare для подключенных баз данных, проектов баз данных SQL Server и файлов .dacpac. Чтобы начать сравнение, кликните правой кнопкой по файлу проекта базы данных в Solution Explorer и выберите Schema Compare….

Мы добавили специальное окно, в котором можно просматривать и редактировать файлы Schema Compare (.scmp). Кроме того, в окне Problems View теперь будут отображаться проблемы, выявленные в ходе сравнения баз данных, а также те, что были обнаружены при проверке модели базы данных.

Важно: реализация Schema Compare в Rider основана на SQL Server Data Tools, и поэтому на вашем компьютере обязательно должна быть установлена Microsoft Visual Studio (версия 2017 или новее).

Docker

Запуск в режиме Fast

Теперь проекты Docker можно запускать в Rider в режиме Fast. Раньше его можно было использовать только при отладке. Кроме того, мы расширили набор файлов Dockerfile, для которых работает этот режим. И наконец, мы сделали режим Fast еще более быстрым за счет извлечения Docker-образов и их проверки во время запуска решения.

Автоматическая генерация конфигураций запуска

Rider 2023.1 может автоматически генерировать конфигурации запуска Docker Compose из файлов проекта .dcproj при открытии решения. Кроме того, новая версия IDE может сгенерировать конфигурацию запуска Dockerfile, если указано свойства проекта DockerfileFile или если в файл launchSettings.json включен профиль Docker.

Для дополнительной настойки можно указать свойства httpPort, sslPort, publishAllPorts и useSSL в профиле настроек запуска.

Обмен сгенерированными SSL-сертификатами

При развертывании приложения в Docker в режиме Fast необходимо обмениваться сгенерированными HTTPS-сертификатами между хостом и контейнером. Мы автоматизировали этот шаг, добавив опцию Share generated SSL certificate для конфигураций запуска Docker. Обмен доверенными сертификатами возможен только в Windows и macOS. В Linux придется вручную добавить сертификат в список доверенных сертификатов.

Docker Compose

Docker Compose

Теперь можно добавить Docker Compose для проекта, чтобы с легкостью работать с несколькими контейнерами одновременно. Для этого вызовите контекстное меню проекта и выберите Add | Docker Compose File, чтобы сгенерировать:

  • Dockerfile для проекта, если он отсутствует;
  • файл docker-compose.yml в папке Solution Items над всеми проектами в дереве;
  • пару конфигураций запуска либо для Dockerfile, либо для docker-compose.yml.

Объединение журналов всех контейнеров Docker Compose

Журналы всех контейнеров Docker Compose теперь собраны в одном месте — на вкладке Dashboard в узле Docker Compose, где они обновляются в реальном времени.

Поддержка реестра контейнеров Azure

Теперь вы можете легко подключиться к реестру контейнеров Azure. Перейдите в Settings/Preferences | Build, Execution, Deployment | Docker | Docker Registry и выберите опцию Docker V2 в поле Registry.

Запуск и отладка

Конфигурация запуска

Иногда бывает нужно запустить приложение в среде выполнения, установленной в пользовательской папке. Для такого случая мы добавили опцию Add Custom Runtime для настройки Runtime на странице Run/Debug Configurations.

Мы также добавили пути к версиям среды выполнения по умолчанию в выпадающем списке Runtime.

Кроме того, в Rider 2023.1 появилась поддержка команды DebugRoslynComponent из файла launchSettings.json, чтобы вам было проще отлаживать компоненты Roslyn.

Действие Reattach to Process

Действие Reattach to Process

В новой версии легко повторно подключить отладчик Rider к последнему процессу, к которому он был подключен. Просто откройте Run | Reattach to Process... в главном меню или с помощью сочетания клавиш Ctrl+Alt+Shift+F5. Действие становится доступно после первого сеанса отладки.

Отладка кода запуска WASM

В Rider теперь можно отлаживать код запуска .NET-приложений WebAssembly (WASM). Раньше WASM-отладчик подключался только после инициализации приложения, поскольку ему требовалось время на вычисление портов, инициализацию соединений и т. д. Эта задержка делала невозможной отладку кода запуска.

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

Закрытие вкладок браузера по окончании отладки

Когда вы начинаете сеанс отладки приложения ASP.NET Core в Rider, IDE открывает новое окно или вкладку в браузере. Раньше при запуске нескольких сеансов отладки открывалось несколько вкладок, которые приходилось закрывать вручную.

Начиная с версии 2023., при отладке приложений ASP.NET Core с включенным JavaScript-отладчиком Rider будет автоматически закрывать соответствующую вкладку браузера в момент остановки процесса.

Поддержка F#

Комплишен

Автодополнение в диалоге Create New Branch

Мы добавили новые постфиксные шаблоны match, for и with, чтобы помочь вам с написанием нужного шаблонного кода.

Автодополнение в диалоге Create New Branch

При начале ввода нового выражения match функция предлагает генерировать все варианты значений union, enum, bool и кортежа.

Языковые вставки регулярных выражений

Языковые вставки регулярных выражений

Мы добавили поддержку регулярных выражений в строковых литералах F# (большую помощь в этом нам оказал Сол Реннисон). При передаче параметров строки с аннотацией [RegexPatternAttribute] или [StringSyntax(StringSyntaxAttribute.Regex)], или когда рядом со строковым литералом есть комментарий //language=regex, Rider обработает такие строки как регулярные выражения и подсветит синтаксис и ошибки. Кроме того, для регулярных выражений работает автодополнение кода.

Быстрые исправления

Быстрые исправления

  • Добавлено новое быстрое исправление, которое генерирует отсутствующие ветви паттернов в выражении match.

Полный список обновлений и исправлений для F# можно посмотреть здесь.

Плагины

Локализация Бета-версия

В Rider 2023.1 мы представляем результаты первого этапа перевода IDE на китайский (упрощенный), корейский и японский языки. Локализация частично затронула интерфейс, инспекции кода, меню Alt+Enter, окна инструментов и уведомления, включая те, что связаны с поддержкой Unity и Unreal Engine.

Чтобы начать пользоваться локализованной версией, перейдите в Settings/Preferences | Plugins и найдите в списке плагин с нужным языковым пакетом, установите его и перезапустите Rider. Вы также можете скачать плагин для китайского, корейского или японского языка с сайта JetBrains Marketplace и установить его в разделе Settings/Preferences | Plugins | ⚙️ | Install Plugin from Disk.

Действие Trigger Continuous Testing

Действие Trigger Continuous Testing dotUltimate

Мы добавили действие Trigger Continuous Testing, и вы можете задать для него сочетание клавиш. Действие позволяет запускать непрерывное тестирование напрямую, тогда как раньше это можно было сделать это только косвенно, выполняя сборку или сохранение проекта.

Чтобы назначить сочетание клавиш, перейдите в Preferences/Settings | Build, Execution, Deployment | Unit Testing | Continuous Testing, выберите Trigger Continuous Testing on... и укажите удобные для вас клавиши.

Поддержка Astro

Готов новый плагин для Rider с начальной поддержкой Astro. Его можно скачать с JetBrains Marketplace или установить прямо из IDE в разделе Preferences/Settings | Plugins.

Плагин предоставляет базовую функциональность, включая подсветку синтаксиса, автодополнение кода с автоимпортами, рефакторинги, навигацию, intention-действия, сворачивание кода, поддержку Emmet и правильное форматирование.

Другие возможности

Панель Structure

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

Когда инициируется команда Go to File Member, новая версия Rider использует всплывающее окно Structure view из IntelliJ IDEA. Вы сможете посмотреть структуру файла и символы из скомпилированных базовых типов. Во всплывающем окне предусмотрена группировка, чтобы можно было быстро определить, где находится каждый элемент.

Code Cleanup

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

Reformat inactive preprocessor branches in file — это новый тип задания для очистки кода, который мы реализуем в Rider 2023.1. Задание позволяет переформатировать неактивные ветки препроцессинга. Его можно применять только ко всему файлу сразу и оно доступно только для исходных файлов на C#.

Задание не может менять форматирование кода, скрытого за директивой препроцессора #if, которая всегда ложна. Вот два наиболее очевидных примера этого ограничения: #if false ... #endif и #define A #if !A ... #endif.

Фильтры текстового поиска для деревьев юнит-тестов

Фильтры текстового поиска для деревьев юнит-тестов

Фильтры текстового поиска, применяемые к деревьям юнит-тестов в окнах Unit Tests и Unit Test Coverage, теперь учитываются при запуске тестов с помощью кнопок Run на панели инструментов. В списки включаются и затем выполняются только тесты, удовлетворяющие критериям поиска.

Рефакторинг Rename

Рефакторинг Rename

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