ReSharper Ultimate 2020.1 анализирует использования целочисленных значений в C# и включает в себя улучшенную поддержку ссылочных типов, допускающих значение null, а также новых функций C++20. Вас ждет расширенная поддержка XAML и Unreal Engine, новые возможности навигации и комментарии в Localization Manager. Декомпилятор поддерживает больше возможностей C# 7.x и 8.0.
Доступна бесплатная пробная версия на 30 дней
В этой версии ReSharper появился новый тип анализа C#-кода, который проверяет использование целочисленных значений в вашем приложении. ReSharper отслеживает, как меняются значения всех локальных переменных int
, и проверяет правильность операций с такими переменными для обнаружения бесполезных и потенциально ошибочных фрагментов кода. ReSharper предупредит вас, если обнаружит:
true
либо false
. switch
, проверяющие целочисленные значения. 1
, прибавление 0
и т.п. int
.0
.Чтобы повысить точность анализа, мы добавили два новых атрибута JetBrains.Annotations для использования с членами типа и параметрами типа int
: [NonNegativeValue]
и [ValueRange(from, to)]
. Эти атрибуты определяют, как значения отдельных членов int
могут меняться во время выполнения.
Мы продолжаем расширять поддержку C#8 Мы многое поменяли в архитектуре ReSharper, чтобы анализ кода, рефакторинги, ReSharper Build и другие функции поддерживали ссылочные типы, допускающие значение null. ReSharper 2020.1 показывает предупреждения компилятора, связанные с такими типами, и предлагает быстрые исправления для большинства из них.
Кроме того, мы добавили несколько новых инспекций и быстрых исправлений, чтобы:
nameof
вместо конструкции typeof(SomeType).Name для получения имени текущего типа. В новой версии много архитектурных изменений, которые приближают нас к тому, чтобы вынести основную функциональность ReSharper в отдельный процесс из процесса Visual Studio. Все эти преобразования коснулись внутренней структуры ReSharper — вы не заметите никаких изменений в UI/UX.
Если вам интересно, как мы выносим ReSharper в отдельный процесс и где мы сейчас находимся, читайте об этом в нашем блоге (на английском).
Мы добавили несколько новых возможностей навигации, которые будут полезны как тем, кто в основном взаимодействует с ReSharper с помощью мыши, так и тем, кто предпочитает пользоваться клавиатурой:
Мы внесли много улучшений и исправлений в поддержку XAML, которая теперь охватывает файлы WPF, Xamarin.Forms, UWP и Avalonia.
Мы улучшили поддержку вывода контекста данных и разрешения символов в привязках:
d:BindingContext
Picker.ItemDisplay
в Xamarin.FormsRelativeSource
в Xamarin.FormsScrollViewer
ItemsSource
используется во вложенном элементеTreeView.ItemContainerStyle
Для проектов UWP мы добавили поддержку:
CustomResource
Также появилась поддержка:
URN
) в определении пользовательской схемы пространств имен XML x:Static
для AvaloniaReSharper 2020.1 позволяет импортировать и экспортировать сеансы юнит-тестирования. Вы можете делиться сеансами с коллегами и использовать один и тот же набор тестов на разных компьютерах или в разных ветках.
Кроме того, существующие сеансы юнит-тестирования теперь сохранятся при обновлении до основной версии ReSharper, что удобно, если вы не хотите терять открытые и заблокированные сеансы.
Вы просили — мы сделали: в рабочей таблице теперь предусмотрены строки для комментариев. Вы можете оставить комментарий (или отредактировать существующий) для любого значения, полученного из файлов ресурсов, прямо в таблице. Комментарии можно экспортировать и импортировать. Если же комментарии вам не нужны, можете их скрыть, нажав на значок Show/Hide comments.
Кроме того, мы исправили несколько проблем производительности. Это позволило ускорить загрузку и фильтрацию таблицы, устранить некоторые зависания интерфейса и сделать прокрутку более плавной.
В управлении локализацией есть и другие улучшения:
Мы добавили новую настройку форматирования C#-кода, касающуюся использования завершающей запятой. Вы найдете ее в меню 0>ReSharper | Options | Code Editing | C# | Code Style | Trailing comma. Она совместима с инспекцией StyleCop SA1413 (за исключением очень редких нетривиальных случаев).
Стандарт C++20 вот-вот подпишут, и ReSharper C++ поддерживает еще несколько новых языковых возможностей, включая заполнители типов с ограничениями, сокращенные шаблоны функций и объявления using enum. Кроме того, ReSharper C++ предлагает быстрое исправление, чтобы использовать синтаксис C++20 для лямбд, и рефакторинг, чтобы легко добавить using enum.
В ReSharper C++ много изменений в поддержке Unreal Engine: улучшен рефакторинг Rename и поддерживаются файлы SpatialOS GDK и USF с виртуальными путями к файлам. Новая версия лучше согласуется с рекомендациями Unreal Engine: отключена инспекция Use auto и соблюдаются правила именования консольных переменных и категорий журналов.
Кроме того, в ReSharper C++ 2020.1 появилась начальная поддержка HLSL. Даже на раннем этапе она уже включает в себя множество функций: от базовой подсветки кода до умного автодополнения и быстрой навигации.
Теперь можно перемещаться по дереву вызовов с помощью действия Next Important Call. Нажмите Ctrl+Shift+Right, и dotTrace переместит вас к узлу, анализ которого в наибольшем приоритете (например, узел, выполнение которого занимает много времени).
Эта функция доступна в Visual Studio, JetBrains Rider и при автономном использовании dotTrace (в Performance Viewer и Timeline Viewer).
В этой версии улучшена поддержка возможностей C#:
Доступна бесплатная пробная версия на 30 дней