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
з використанням вибраних полів та властивостей. Generate relational comparer створює клас для порівняння вибраних об'єктів, успадкований від Comparer
. 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. З найцікавішого — виведення журналу помилок у вікно OutputVisual 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.