JetBrains анонсировала релиз ReSharper Ultimate 2016.3
Совместимость с Visual Studio 2017 RC
Все инструменты в составе ReSharper Ultimate можно установить в Visual Studio 2017 RC. Есть несколько новых функций Visual Studio, над поддержкой которых мы работаем и представим исправления в ближайших обновлениях. Сейчас в ReSharper не поддерживается режим инкрементальной загрузки решений (Lightweight Solution Load) и .NET Core юнит-тесты. Для работы с ReSharper C++ отключите опцию Enable Faster Projects Load в настройках текстового редактора Visual Studio.
Начальная поддержка C# 7 и VB.NET 15
ReSharper распознает локальные функции C# 7 и предоставляет множество инспекций кода в их контексте, таких как Possible System.NullReferenceException, Access to disposed closure и Access to modified closure.
В C# 7 поддерживаются out переменные и сопоставление с шаблоном для конструкций is
и case
в операторе switch
.
Бинарные литералы в C# 7 и VB.NET 15 распознаются, и их можно преобразовать в шестнадцатеричную систему, а также добавить разделитель разрядов.
Generate relational members перегружает операторы сравнения (>, <, ≥, ≤) и реализует интерфейс IComparable
и IComparable<T>
с использованием выбранных полей и свойств. Generate relational comparer создает класс для сравнения выбранных объектов, наследуемый от Comparer<T>
. ReSharper также определяет типы полей: если класс содержит строковые поля, можно выбрать опцию для сравнения строк и включить проверку на null.
Проверка параметров на null теперь доступна для генератора Generate constructor. При выборе опции Check parameters for null создаётся защитный код, который выбрасывает исключение ArgumentNullException
в конструкторе.
Используйте Generate Dispose pattern для реализации интерфейса IDisposable
с дополнительными проверками на null и деструктором для неуправляемых ресурсов.
В ReSharper 2016.3 появилось быстрое исправление (quick-fix), с помощью которого создаются поля и свойства для неиспользованных аргументов. Раньше это действие выполнялось только для одного аргумента, но теперь поля и автосвойства генерируются сразу для всех аргументов. Можно задать тип генерируемого свойства, выбрав соответствующее значение в меню Configure default.
Новый рефакторинг Transform Parameters заменил два других: Transform Out Parameters и Extract Class from Parameters. Он переписывает параметры метода, изменяя входные параметры на новый класс или кортеж. Для возвращаемого значения или любого выходного параметра можно создать новый класс. Как всегда, рефакторинг Transform Parameters вызывается из меню Refactor This (Ctrl+Shift+R).
В Go to Text появилась поддержка новых форматов файлов: .less, .hbs, .coffee, .scss, .dart, .as, .styl.
В настройках ReSharper появилась новая опция Remember last search. Если её включить и выполнить поиск, то его результаты отобразятся в окне при следующем вызове Go to Everything, Go to Text и других поисковых команд. Это полезно, если не подошёл первый результат поиска, на который вы перешли, и вы хотите походить по другим результатам.
Использование ReSharper Build позволяет сократить время на сборку решения, т.к. перестраиваются только проекты, в которых были изменения. Результаты сборки теперь выводятся в отдельном окне Build Results, которое предоставляет ряд опций для удобного просмотра предупреждений и ошибок. Можно показать или скрыть предупреждения, вывести код с ошибкой в окно предварительного просмотра и сгруппировать результаты по различным критериям.
ReSharper Build обзавелся собственным механизмом восстановления пакетов NuGet (NuGet Restore). Раньше приходилось использовать интеграцию NuGet в Visual Studio, но это работало только в версии 2015. Теперь механизм восстановления работает во всех версиях Visual Studio при условии, что у вас установлен .NET Framework 4.5 или выше.
Небольшие изменения появились в опциях ReSharper Build. Из наиболее интересного — вывод журнала ошибок в окно Output Visual Studio или запись журнала в файл.
dotCover теперь умеет измерять покрытие кода юнит-тестами в проектах .NET Core.
В dotTrace и dotMemory можно профилировать производительность и потребление памяти в приложениях .NET Core. Для этого выберите тип профилирования .NET Core Application и укажите путь к приложению.
В TypeScript появилось автодополнение кода для строковых литералов. Если у нас есть метод с определенным набором параметров, то автодополнение кода их покажет. Это работает и для чисел.
Go to Implementation (Ctrl+F12) работает для типов TypeScript. Переходите от базового типа к любой из его реализаций, пропустив промежуточные шаги в цепочке наследования. Структурный поиск (Structural Navigation) с использованием клавиш Tab или Shift+Tab работает в JavaScript, TypeScript и JSON.
Новое быстрое исправление Surround with type guard генерирует проверку типа переменных. В примере ниже мы добавили защиту типа для padding, чтобы исключить ошибку в том случае, если переменная содержит число.
ReSharper автоматически распознает код в литералах для известных сценариев, таких как введение кода JavaScript в шаблоны AngularJS или CSS в индексаторы $[]
jQuery. Включить или отключить автоматическую поддержку кода в строковых литералах можно в опциях ReSharper: Options | Code Editing | Language Injections.