.NET Tools News Releases

ReSharper 2021.3: поддержка Visual Studio 2022, больше возможностей C# 10, улучшенная поддержка C# и NRT

Read this post in other languages:
English

Мы выпустили версию 2021.3 ReSharper и инструментов JetBrains для .NET

Ниже мы вкратце расскажем о важнейших обновлениях в новых версиях ReSharper и ReSharper C++. Подробнее о других инструментах для .NET, включая dotCover, dotMemory, dotPeek и dotTrace, читайте в этом посте

Внимание! Начиная с версии 2021.3 набор инструментов ReSharper Command Line Tools больше не включает в себя dupFinder. Вы по-прежнему можете пользоваться dupFinder в более ранних версиях. Подробности читайте в нашем посте.

А теперь подробнее о новых возможностях.

ReSharper

Поддержка Visual Studio 2022

ReSharper поддерживает финальную стабильную сборку Visual Studio 2022. Это значит, что вы сможете пользоваться привычным набором функций Visual Studio. Поскольку Visual Studio 2022 является 64-разрядным приложением, ReSharper может использовать любое количество оперативной памяти и работать быстрее.

Больше возможностей C# 10

Мы продолжаем расширять поддержку возможностей C# 10 в ReSharper. На этот раз мы поддержали пространства имен уровня файла, директивы global using, атрибут CallerArgumentExpression, обработчики интерполированных строк, структуры readonly record и лямбды C# 10. Подробнее о них можно узнать в нашей серии постов о новых возможностях C# 10, а также на нашем сайте

Поддержка NRT (ссылочных типов, допускающих значение null)

Предположим, вы скопировали откуда-то код с синтаксисом NRT и вставили его в свое решение, которое не поддерживает NRT. Теперь вы можете избавиться от синтаксиса NRT при помощи быстрого исправления. Мы добавили еще несколько быстрых исправлений:

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

Общие улучшения анализа кода на C#

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

  • Появилось быстрое исправление для статических локальных/анонимных функций с замыканиями. 
  • Мы улучшили поддержку структур. 
  • Появилось быстрое исправление для преобразования классов в типы record, а затем в первичные конструкторы. 

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

Навигация и поиск использований

На полях редактора появились новые значки, позволяющие перемещаться по иерархии наследования класса, интерфейса или структуры. Значок ↑O означает, что сущность наследует класс, а значок ↑I — что сущность реализует интерфейс. Кроме того, если член класса переопределяется в производных классах, напротив него на полях редактора слева отобразится значок ↓O

Теперь действие Find Usages работает для операторов неявного преобразования, заданных пользователем. С помощью этого действия вы можете искать использования операторов неявного преобразования, заданные пользователем, и затем напрямую переходить к соответствующим фрагментам кода.

Если при отладке вы вызовите действие Go to Type of Symbol для переменной или параметра типа интерфейса, то перейдете не к объявлению интерфейса, а к той реализации, которая используется в текущем фрейме.

Другие улучшения

  • Теперь любые параметры, поля и свойства функции можно отмечать атрибутом LanguageInjection, означающим, что строковое значение данной сущности написано на другом языке. Вы можете добавлять фрагменты кода на CSS, HTML, JavaScript, JSON и XML.
  • Мы обновили функцию Copy Code Reference (ранее — Copy FQN). Помимо нового интерфейса мы добавили новые опции GitHub, позволяющие генерировать правильные ссылки на GitHub-репозитории и сразу делиться ими. Подробнее об этом читайте в нашем посте.
  • Появилось несколько новых возможностей для более детального форматирования кода.
  • Мы добавили поддержку файлов AnalyzerConfig — теперь ReSharper учитывает их в своих правилах.

ReSharper C++ 

Главные обновления ReSharper C++:

  • Мы поместили шаблоны классов Unreal Engine в список шаблонов ReSharper C++ — теперь вы можете создавать классы, не переключаясь в Unreal Editor.

  • Мы поддержали больше возможностей C++20: автодополнение назначенных инициализаторов для агрегатной инициализации, а также инспекции, которые помогут вам освоить новые библиотечные функции.
  • Мы дополнили поддержку C выражениями C11 _Generic и расширением GNU typeof.
  • Подсказка Quick Info теперь показывает значения константных выражений.
  • Встроенный Clang-Tidy теперь включает проверки из Clang 13. Также мы добавили новые инспекции и быстрые исправления.

Подробнее о новых возможностях и улучшениях в ReSharper C++ читайте в этом посте.


Узнать больше о новых возможностях ReSharper можно на нашем сайте

Подробнее о других инструментах для .NET, включая dotCover, dotMemory, dotPeek и dotTrace, читайте в этом посте.

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

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

Автор оригинальной статьи:

Oksana Mandryka

Alexander Kurakin

Discover more