Rider 2021.1 позволит вам с легкостью добавить в проект поддержку Docker. Вы сможете подключать .NET-процессы прямо с начального экрана и управлять процессом отладки с помощью подсказок отладчика. Для разработчиков ASP.NET мы добавили возможности кодогенерации, в том числе для Identity и “CRUD” Entity Framework, и поддержали анализ шаблонов маршрута. Мы существенно обновили поддержку C#, на этот раз в основном затронув конструкции и типы Record.
Включить поддержку Docker в проект стало проще — вы можете сгенерировать Dockerfile еще при создании проекта. Если вы выбрали веб-приложение ASP.NET Core, Worker Service или консольное приложение, вам достаточно отметить Docker Support в окне New project.
Если вы хотите включить Dockerfile в существующий проект, откройте контекстное меню проекта в Solution Explorer и выберите Add | Docker Support.
Rider теперь умеет запускать файлы Dockerfile, сгенерированные Visual Studio. Вам не нужно никак модифицировать Dockerfile — он и так будет совместим с Rider.
Подробнее о генерации Dockerfile для .NET-приложений в Rider читайте в нашем блоге.
Инспекция Merge into pattern теперь охватывает больше шаблонов.
Объединяйте проверки на null с другими проверками в единый шаблон.
Переделывайте выражения conditional?.Access
во вложенные сопоставления шаблонов.
Сокращайте вложенные операторы if
, объединяя проверки.
И наконец, вы можете соединять шаблоны с деконструкцией.
Мы расширили поддержку типов Record (из C# 9.0).
Для объявлений типов Record теперь работают рефакторинги Extract interface и Extract superclass, а также File Layout и различные возможности, связанные с XML-документацией.
Мы добавили ряд новых инспекций и действий. Использование Redundant explicit property declaration для свойств в объявлениях типов Record поможет при переходе на код, использующий типы Record с позиционными параметрами и неявными объявлениями свойств. Есть и соответствующее быстрое исправление — Remove explicit property.
Соблюсти порядок также поможет инспекция Redundant 'record' type declaration body (и соответствующее быстрое исправление). Она позволяет заменять пустое тело объявления Record на точку с запятой.
Deconstruct()
, вы можете использовать контекстное действие To explicit constructor. Deconstruct()
. Представляем вам новую инспекцию Inline temporary variable.
Иногда может оказаться, что вы используете одно и то же значение под разными именами. Хотелось бы сделать такой код более прозрачным — возможно ли это? Возможно! И Rider поможет вам в этом. Он даже поможет вам отследить ошибки в случае, если временная переменная должна была проинициализироваться другим значением или изменить значение при дальнейшем исполнении.
Именованные кортежи появились еще в C# 7. Однако переименовывание компонент кортежей все это время делалось вручную. Мы решили положить этому конец и создали специальный рефакторинг.
Логические конструкции not
делают проверки типов более читаемыми. Rider предлагает замену синтаксиса !()
на конструкцию not
.
Мы сделали первые шаги в сторону поддержки C# 10.0 и научили Rider работать с интерполяцией константных строк.
Slice
и Substring
Rider теперь предлагает использовать оператор диапазона, если это позволяет упростить код. Хорошие новости для тех, кто работает с ASP.NET MVC, ASP.NET Web API или Razor Pages! Мы добавили механизм кодогенерации для проектов ASP.NET Core.
Rider поддерживает генерацию областей, контроллеров, Razor Pages, представлений и Identity, включая генерацию шаблонного кода для CRUD-операций, необходимых при использовании Entity Framework.
Функциональность работает на Windows, Linux и macOS.
Rider uses dotnet aspnet-codegenerator under the hood.
Подробнее о кодогенерации для проектов ASP.NET Core в Rider 2021.1 читайте в нашем блоге
Шаблоны маршрута часто используются в MVC-приложениях для соотнесения HTTP-запросов и URL-адресов. В версии 2021.1 мы поддержали шаблоны маршрута. Работая с ними, вы теперь можете пользоваться автодополнением кода, структурной навигацией, инспекциями и быстрыми исправлениями. Что вас ждет:
Подробнее об этом рассказываем в статье о ReSharper 2021.1.
Появилась возможность удалять файлы из папки перед публикацией. Это позволит избежать устаревших данных (например, при перемещении файлов). Имейте в виду, что, если у вас включена эта опция, Rider будет полностью очищать целевую папку.
Мы интегрировали в Rider документацию MDN. Это помогает избежать проблем с подключением к сайту MDN, и документация в HTML, CSS и JavaScript-файлах отображается быстрее. Кроме того, она стала более информативной: например, вы можете просмотреть подробную информацию о поддерживаемых версиях браузеров для API JavaScript.
Пользоваться популярным линтером Stylelint стало проще. Исправлять ошибки в CSS-коде теперь можно всего в несколько кликов. Наведите указатель мыши на проблемное место в файле или поместите туда курсор и нажмите Alt+Enter, а затем выберите Stylelint: Fix current file.
Также вы можете указать путь к файлу конфигурации в разделе Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint.
При работе с файлами стилей вы теперь можете проверять специфичность селекторов, попросту наводя на них курсор. Либо вы можете переместить фокус на интересующий селектор и нажать F1/Ctrl+Q — так информация отобразится во всплывающем окне документации.
В Rider теперь есть встроенное превью для HTML-файлов. Чтобы открыть его, нажмите на логотип Rider в виджете в правом верхнем углу редактора.
Теперь вы можете подключать удаленные .NET-процессы прямо с начального экрана Rider. Не обязательно предварительно открывать решение с исходным кодом. Откройте вкладку Attach to process начального экрана и выберите нужный .NET-процесс из списка — Rider начнет отладку процесса.
В отладчике Rider появились интерактивные подсказки. Они не только сообщат вам о происходящем, но и позволят вмешаться в процесс отладки и управлять им через подсказки отладчика. Чтобы перейти в интерактивный режим, нажмите на подсказку и выберите Set Value. Вы сможете вводить исходные данные либо выбирать значения, пользуясь автодополнением. Также поддерживаются сочетания клавиш.
Чтобы включить подсказки отладчика, выберите опцию Show values inline в разделе Settings | Build, Execution, Deployment | Debugger | Data Views.
Rider 2021.1 развивает функциональность IDE, относящуюся к Unity, чтобы у вас было еще больше информации при работе с этими проектами. В каких ассетах Unity использует ваш код? Какие пути выполнения кода, вызываемые каждый кадр методом Update, являются критичными для производительности? Как можно улучшить отладку, тестирование и покрытие вашего кода?
Rider теперь умеет показывать, как Unity использует ваш код внутри сцен, ассетов и префабов (использования выделяются прямо в редакторе Unity).
В Rider 2021.1 мы также поддержали анимационные ассеты. Теперь использования свойств и методов отображаются как обратные вызовы анимаций.
Rider предоставляет автодополнение и валидацию для магических строк Unity. В IDE уже есть поддержка тегов, имен слоев, сцен и корутин. Rider 2021.1 добавляет поддержку значений состояния анимаций.
Предыдущие версии Rider подсвечивали методы, которые были критичными для производительности, часто использовались, были скомпилированы при помощи Burst. Однако не всегда было понятно, по какой причине они оказывались подсвеченными.
Rider 2021.1 добавляет новые элементы меню, позволяющие отобразить все методы, вызванные в критических путях (начиная с метода Update
), или же просмотреть трассировку исходящих вызовов и выявить ресурсоемкие API Unity.
Для методов, скомпилированных при помощи Burst, Rider отобразит путь, включающий все вызванные методы — вплоть до создания контекста Burst.
Rider уже обеспечивает расширенную поддержку отладки для проектов Unity: IDE показывает объект Active Scene, а в окно отладки добавляются дочерние игровые объекты и компоненты.
Новая версия Rider поможет в отладке объектов SerializedProperty. Поля, не имеющие отношения к делу, будут скрыты по умолчанию — показаны будут только те значения, которые имеют отношение к типу свойства. Вы сможете просмотреть дочерние свойства и все сериализованные данные.
Rider расширил поддержку юнит-тестирования для Unity: теперь она включает покрытие кода тестами в режиме игры. Вы можете просматривать, запускать и отлаживать тесты в режимах редактирования и игры, а также следить за покрытием кода, и при этом не покидать редактор.
Также есть множество мелких изменений и исправлений: обеспечение стабильности при работе с метафайлами, повышение производительности при добавлении записей логов в окно инструментов Unity, улучшенная группировка шаблонов файлов, относящихся к Unity, и др.
Также был обновлен плагин Godot Support для Rider. Теперь он поддерживает запуск юнит-тестов NUnit прямо в ходе игрового процесса. Это позволит вам убедиться, что все действительно работает так, как должно. Follow the instructions in this pull request to make it work in your game today! Мы будем рады вашим отзывам — вы можете оставить их на странице пул-реквеста.
Пока что Rider для Unreal Engine доступен в рамках открытой превью-версии. Выпуск в составе Rider планируется чуть позже в этом году. У вас есть возможность бесплатно оценить превью до выхода публичного релиза.
The Unreal Engine’s Cast for type-safe dynamic casting is now available as a postfix template in code completion. Rider также поддерживает специфичный для Unreal Engine макрос рефлексии RIGVM_METHOD.
Мы добавили базовую поддержку Unreal Engine 5, реализованную на основе обратной связи от команды Epic Games.
Что касается C++, мы добавили Include и Type Hierarchies, а также реализовали поддержку Google Test и некоторых других фреймворков для юнит-тестирования кода на C++.
Подробнее об улучшениях для пул-реквестов читайте здесь.
В Rider 2021.1 появилось новое действие Save to Shelf. Оно позволяет скопировать изменения на вкладку Shelf, сохранив их в локальной истории изменений. Действие можно вызвать при помощи сочетания клавиш либо введя «Save to Shelf» в окне Search Everywhere.
Окно Compare with branch теперь позволяет скопировать файл из другой ветки. Просто выберите интересующий файл и нажмите на новый значок со стрелкой вниз рядом с Show diff.
Rider теперь сохраняет состояние окна Solution Explorer после закрытия IDE. В частности, это касается раскрытых в нем папок — вам больше не придется раскрывать их вручную, если вы заново открыли решение или перезапустили IDE.
Когда в редакторе открыто несколько вкладок в режиме Split, любую из них можно развернуть двойным кликом.
Мы обновили диалог выбора папок в Windows. Теперь вы увидите только те папки, которые доступны для выбора.
Пользователи Windows теперь могут перейти к недавним решениям, кликнув правой кнопкой мыши по иконке Rider в панели задач либо в меню Пуск.
Rider теперь поддерживает новые модальные окна в macOS Big Sur.
Мы обновили менеджер Toolbox для конструктора Windows Forms.
В левой части окна вы увидите список всех библиотек компонентов (системных и сторонних), сгруппированных по производителю. Выбрав библиотеку из списка, вы сможете указать конкретные компоненты в средней части окна — тогда в Toolbox отобразятся только эти компоненты. В правой части окна вы увидите метаданные для выбранного компонента.
В библиотеке море компонентов, и вы не можете найти тот, который вам нужен? Нет проблем! В средней части окна можно выполнить поиск — он сузит выборку компонентов и подсветит строку, по которой вы выполняли поиск, в списке результатов.
И наконец, внизу мы разместили новые счетчики, показывающие, сколько компонентов добавится/удалится из Toolbox при сохранении. Это позволит вам не потерять контроль за происходящим при нажатии кнопки Apply.
В окне быстрой документации теперь работает такая же подсветка синтаксиса, какую вы привыкли видеть в редакторе кода. Кроме того, быстрый просмотр документации теперь доступен для определителей (при наведении курсора).
Когда программируешь много часов подряд, комфортный шрифт имеет большое значение. Мы добавили настройки типографики, чтобы вы могли подобрать идеальные размеры шрифта. В версии 2021.1 можно отрегулировать толщину обычных и жирных шрифтов в меню Preferences / Settings | Editor | Fonts.
Мы улучшили инструмент предпросмотра XAML, который является важным механизмом получения разработчиком обратной связи при разработке на WPF и XAML.
Инструмент предпросмотра XAML теперь располагается в окне редактора — это позволит вам по-разному ориентировать и организовывать рабочее пространство. Вы можете отделить окно предпросмотра от редактора по вертикали либо по горизонтали.
Элемент в фокусе теперь подсвечивается, поэтому вам будет легче находить тот или иной UI-элемент в сложном на вид интерфейсе.
Инструмент предпросмотра XAML теперь позволяет пролистывать экземпляры TabItem. Это удобно, если вы создаете пользовательские интерфейсы с несколькими вкладками.
Инструмент предпросмотра XAML теперь учитывает такие настройки, как DesignHeight и DesignWidth, при отрисовке представлений.
Обращаем ваше внимание, что предпросмотр XAML доступен только на Windows и только для приложений, использующих .NET Framework.
Подробнее об улучшениях инструмента предпросмотра XAML в Rider 2021.1 читайте в нашем блоге.
Мы добавили несколько новых настроек:
new()
и внутри них. Что касается пользовательских правил именования, мы изменили порядок, в котором они применяются: сначала учитываются более узкие правила.
И наконец, мы добавили новое действие Reindent only для форматирования выбранного кода. Теперь вы можете указать, чтобы для выбранного кода Rider не выполнял процесс переформатирования полностью, а лишь регулировал отступы.
EditorConfig становится популярным инструментом среди .NET-разработчиков, и мы продолжаем улучшать его интеграцию с Rider. Вот что мы сделали к этому релизу:
csharp_indent_case_contents_when_block
. Мы добавили новый рефакторинг Inline Variable для локального типа связывания let
.
Rider теперь может вычислять допустимый уровень языка, основываясь на информации о проекте и компиляторе, используемом для сборки, и предлагать улучшения, которые помогут максимально осовременить ваш код на F#.
To Interpolated String — новый анализатор (и соответствующее быстрое исправление), который преобразует строки формата printf
в интерполированные строки на F# 5. Thanks again to Saul for the nice implementation.
Анализ на предмет лишних скобок (и соответствующее быстрое исправление) работает для различных конструкций, типов и простых выражений. Мы планируем покрыть больше видов выражений в будущих релизах.
Мы пополнили поддержку F# и другими быстрыми исправлениями, рефакторингами и т. д. Please see the full release notes for more details.
Rider теперь поддерживает плагин для Space. Чтобы подключиться к своей организации в JetBrains Space, нажмите кнопку Get from VCS на начальном экране. После входа в систему вы сможете просматривать и клонировать репозитории проекта, читать код своих коллег, а также писать скрипты автоматизации Space.
Мы добавили интерфейс для изменения прав доступа при редактировании объектов.
В окне Modify user (вы можете открыть его из проводника баз данных для любого пользователя при помощи команды Ctrl+F6) появился интерфейс для назначения объектам прав доступа.
Функциональность доступна для PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server и Sybase.
Неквалифицированные системные функции и процедуры теперь не подсвечиваются как ошибки. Также для них теперь работает навигация и автодополнение.
Подробнее об обновлениях инструмента для баз данных читайте в статье Что нового в DataGrip.
Мы реализовали NuGet Smart Restore on a build. Эта настройка позволяет выполнять восстановление при запуске сборки в случае, если эвристические алгоритмы выявили, что было выполнено внешнее восстановление. Вы также можете отключить ее — для этого перейдите в раздел Settings/Preferences | Build, Execution, Deployment | NuGet | Smart Restore on Build.
Rider теперь поддерживает параллельные сборки в свежих версиях Mono. Включить эту возможность можно в разделе Settings | Build, Execution, Deployment | Toolset and Build.
Теперь вы можете настроить, будет ли Rider воспринимать внешние зависимости при поиске текста или нет. Откройте диалог Find in Files, выберите Scope и нажмите на кнопку «…». В открывшемся окне Scopes вы увидите, включены ли внешние зависимости (External Dependencies) в область видимости или нет. Вы можете внести изменения, используя кнопки справа.
Мы теперь поддерживаем формат JSON Lines, в котором каждая запись находится на отдельной строке. Он используется для работы со структурированными данными и логами. IDE распознает типы файлов .jsonl, .jslines, .ldjson и .ndjson.
Файлы этих форматов содержат по несколько строк. Каждая из них является JSON-объектом и отделяется символом переноса строки. Запятые в начале и конце строки не обязательны, и вы можете не заключать содержимое файла в квадратные или фигурные скобки.