ReSharper 2020.2: улучшенный анализ кода для C# 8, Code Cleanup при сохранении файла, обновленные инструменты запуска юнит-тестов

Oksana Mandryka

С радостью представляем вам ReSharper 2020.2. В этот релиз мы включили новые инспекции и быстрые исправления для C# 8 (главным образом для ссылочных типов, допускающих значение null), добавили долгожданный Code Cleanup в момент сохранения файла, обновили инструменты запуска юнит-тестов, а также улучшили интерфейс.


Скачать ReSharper 2020.2

Поскольку лицензия ReSharper теперь включает в себя и ReSharper, и ReSharper C++, большое внимание было уделено поддержке C++/CLI и улучшению совместимости C++/CLI и C#.

Итак, основные обновления инструментов и расширений для .NET:

Все подробности о релизе можно найти на нашем сайте.

ReSharper 2020.2

Анализ кода

Поддержка C# 8 была улучшена за счет набора новых инспекций и быстрых исправлений — прежде всего для типов данных, допускающих значение null. Например, при анализе кода теперь учитываются атрибуты JetBrains.Annotations NotNull и CanBeNull — это происходит даже тогда, когда код запрещает использование ссылочных типов, допускающих null (#nullable disable).


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

Code Cleanup при сохранении файла

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

Обновленные инструменты запуска юнит-тестов

Мы полностью переработали инструменты запуска юнит-тестов как для фреймворка .NET, так и для .NET Core. Тест-раннер теперь запускается для любой из сред выполнения, порожденных процессом Visual Studio. Это позволило нам решить многие проблемы, связанные с обнаружением, запуском и отладкой юнит-тестов, и дало возможность полноценно управлять иерархиями юнит-тестов в .NET Core. Более того, в новый тест-раннер встроена поддержка от MSFakes фреймворков юнит-тестирования NUnit, xUnit, и MSTest v2.

Кроме того:

  • Хорошие новости для разработчиков UWP: мы наконец-то реализовали поддержку компилируемых привязок x:Bind.

  • В новой версии расширена поддержка инструментов чтения с экрана, таких как JAWS, NVDA и Microsoft Narrator.

  • Были доработаны инструменты построения диаграммм типов и проектных зависимостей. Используемый здесь движок yFiles был обновлен до последней версии. Благодаря этим и некоторым другим оптимизациям диаграммы отрисовываются быстрее. Кроме того, диаграммы теперь можно экспортировать в файлы формата GraphML и XPS.

  • Упростилась навигация в места использования тех или иных типов из внешних сборок. После выполнения Go to Type из окна с результатами поиска можно напрямую вызвать действие Find Usages.

  • Для некоторых популярных в ReSharper действий появилась новая опция Peek, позволяющая просматривать результаты этих действий в представлении Peek Definition.

  • Наши оффлайн- и онлайн-установщики теперь покрывают все продукты под лицензией dotUltimate license: ReSharper, ReSharper C++, JetBrains Rider, dotCover, dotTrace, dotMemory и dotPeek.

ReSharper C++ 2020.2

Улучшения для Unreal Engine

В ReSharper C++ 2020.2 включена поддержка проектной модели Unreal Engine с улучшенным автоматическим импортом директив и возможностью работы с различными конфигурациями решений. Для поддержания стандартов оформления кода Unreal Engine мы внесли изменения в уровни значимости инспекций и обновили действия по автогенерации кода.

Улучшенная поддержка C++/CLI

Для улучшения интероперабельности с кодом на C# мы обновили поддержку C++/CLI и добавили набор новых инспекций для использований sealed, gcnew и safe_cast. Функции поиска и навигации теперь работают для импортированных CLR-объектов и позволяют искать производные символы в C#-коде.

Более подробную информацию вы найдете в статье о ReSharper C++ 2020.2.

Command Line Tools 2020.2

  • Инструменты командной строки ReSharper теперь поддерживают .NET Core в Windows, Linux и macOS. Их можно установить в качестве .NET Core Global Tools.

  • Инструменты командной строки dotTrace, dotCover и dotMemory для Linux (Debian и Ubuntu) теперь поддерживают архитектуру ARM64.
  • При запуске консольного раннера dotCover с параметром --reportype=SummaryXml вам будет доступен новый тип отчета Summary, включающий данные о количестве покрытых классов, методов и операторов. Теперь раннер может за раз генерировать отчеты нескольких типов.
  • Консольный профилировщик dotTrace теперь позволяет контролировать сеанс профилирования (делать снэпшоты, отсоединяться от профилируемого процесса и т. д.), отправляя команды в stdin либо в файл.
  • Консольный профилировщик dotMemory теперь доступен не только для Windows, но и для Linux и macOS.

dotTrace 2020.2

И автономный dotTrace, и dotTrace в Rider умеют профилировать нативную часть приложений Mono/Unity на Windows. Начните сеанс со включенной опцией Enable native profiling, и в снэпшотах производительности будут показаны стеки вызовов как для нативного, так и для управляемого кода.

dotPeek 2020.2

  • Улучшенная поддержка NuGet: с каналами NuGet v3 теперь можно работать из диалогов Open from NuGet, Open from NuGet packages cache и Open NuGet packages.config.
  • Поддержана самая свежая версия C#. В числе новой функциональности:
    • Члены, тела которых представляют собой одно выражение
    • Выражения throw
    • Параметры по умолчанию и именованные аргументы
    • Атрибут NullablePublicOnly

С полным списком улучшений и исправлений, вошедших в версию 2020.2, можно ознакомиться в YouTrack.

Кроме того, информация о релизе доступна на нашем сайте. Поделитесь с нами своими впечатлениями о ReSharper 2020.2. Мы будем рады вашей обратной связи ниже в комментариях, в нашем баг-трекере или в Twitter!

Перейти на ReSharper 2020.2 можно любым из перечисленных способов:

  • Скачать и установить новую версию c сайта www.jetbrains.com.
  • Обновить версию установленного ранее ReSharper: ReSharper | Help | Check for updates.
  • Использовать наш Toolbox App.

Ваша команда .NET
The Drive to Develop

Подписаться

Подписаться на новости о .NET-инструментах