Первый релиз ReSharper в 2022 году предлагает в основном качественные улучшения и исправления ошибок, в частности расширение поддержки Blazor и C#.
Доступна бесплатная пробная версия на 30 дней
Мы продолжаем улучшать поддержку C# 10, в частности глобальных using-директив. добавлены два новых рефакторинга и соответствующие контекстные действия.
Рефакторинг Extract Global Using поможет внедрить в проект директивы global using. Если запустить его для обычных директив using
, ReSharper предложит вынести их в файл GlobalUsings.cs
(если в проекте такого файла нет, ReSharper его создаст). В таком случае обычная директива using
станет не нужна и будет удалена из файлов проекта.
Рефакторинг Inline Global Using поможет заменить глобальную директиву using
на обычную. Если вызвать рефакторинг для глобальной директивы using
, ReSharper удалит ее из GlobalUsings.cs
и добавит соответствующую директиву using
во все файлы проекта, где она необходима.
Директивы global using
поддерживаются функцией анализа кода для методов расширения, а также в Find Usages.
Мы рассмотрели предстоящий C# 11 и добавили поддержку обобщённых атрибутов.
[MemberNotNull]
и [MemberNotNullWhen]
для проектов, в которых не используются ссылочные типы, допускающие значение null. Поддержка конечных точек теперь работает для маршрутизации минимального API из ASP.NET Core 6 и конвенциональной маршрутизации. Вы можете пользоваться возможностями навигации, анализа кода и автодополнения.
Главные улучшения для Razor и Blazor в этой версии:
[EditorRequired]
из .NET 6. Вы можете использовать соответствующую инспекцию и быстрое исправление, когда ссылаетесь на компоненты Blazor, не указывая требуемые параметры. .razor
с компонентами Blazor: теперь она не удаляет объявления @using
. Мы реорганизовали элементы меню Alt+Enter, относящиеся к очистке и форматированию кода. Теперь опции Format selection, Cleanup selection и Apply syntax style вы найдете под пунктом Reformat and Cleanup.
Кроме того, можно настраивать стиль синтаксиса с помощью действий Configure code style и Autodetect code style settings. На панели Preview code style также отображаются изменения стиля синтаксиса.
Добавлена поддержка тестового фреймворка Unreal Engine. Теперь ReSharper C++ распознает юнит-тесты Unreal Engine. В редакторе рядом с каждым тестом отображаются значки для запуска и отладки тестов и целых тестовых наборов. Посмотреть результаты, а также перезапустить тесты (выборочные, только упавшие или все подряд), можно в окне Unit Test Sessions.
ReSharper C++ 2022.1 лучше справляется с неявным запуском конструктора. Теперь вы также можете искать использования и переходить к коду вызванного конструктора для:
make_unique/make_shared
) и специфичных для Unreal (MakeShared/MakeUnique
) умных указателей; emplace
;static_cast
или в стиле C. Также ReSharper C++ 2022.1 показывает предупреждение, если перегруженная функция типа emplace
вызвана с неверными аргументами.
Мы проанализировали производительность генераторов кода и решили увеличить задержку между запросами при получении сгенерированных документов от компилятора.
Это дает возможность не запускать генераторы кода до компиляции, что уменьшает суммарную нагрузку на процессор. Насколько увеличится производительность, зависит от того, используются ли генераторы другими функциями (например функцией полнострочного автодополнения Visual Studio).
Мы уже исправили ряд проблем с производительностью и подготовили почву для дальнейших улучшений. В частности, мы изучаем снэпшоты, полученные от пользователей, проводим сеансы профилирования, собираем данные для реализации автоматических проверок производительности.
Что касается режима запуска ReSharper вне процесса, мы продолжаем работать над его реализацией. Ознакомьтесь с последним обновлением в нашем трекере.
Инструменты InspectCode теперь могут генерировать выходные файлы, совместимые с форматом SARIF (Static Analysis Results Interchange Format).
Инструменты командной строки теперь поддерживают Alpine Linux.
[TypeForwardedTo]
). Действие Locate in Metadata теперь также работает для ресурсов, перенаправляемых типов и ссылок на сборки и модули. Теперь dotTrace поддерживает события SQL Server провайдера Microsoft.Data.SqlClient
на Windows (.NET Core, .NET 5+), а также на macOS и Linux (.NET Core 3.0+, .NET 5+).
Теперь, чтобы подключить профилировщик к запущенному приложению, достаточно перетащить в окно приложения специальную иконку.
Теперь вы можете исключать выборочные строки или фрагменты кода из анализа покрытия при помощи комментариев. Есть несколько способов сделать это:
// dotcover disable
var i = 1;
var j = 10;
// dotcover enable
/* dotcover disable */ var i = 1; /* dotcover enable */
var i = 1; // dotCover disable this line
// dotcover disable next line
var j = 100;
Какой бы вариант вы ни выбрали, нужно указать пакет JetBrains.dotCover.MSBuild NuGet
в качестве зависимости. Он необходим только при разработке и не будет включаться в проект во время исполнения.
.sqlproj
в локализованных версиях Visual Studio. Доступна бесплатная пробная версия на 30 дней