ReSharper е допълнителен софтуерен инструмент на фирмата JetBrains, който разширява вградената функционалност на Microsoft Visual Studio. ReSharper е във версия 9, която поддържа версии на Visual Studio 2010, 2012, 2013, 2015 и езиците C#, Visual Basic .NET, XAML, JavaScript, TypeScript, CSS, HTML и XML, както и технологиите ASP.NET MVC и ASP.NET.

ReSharper
Информация
РазработчикJetBrains
Последна версия2020,1
(април 2020 г.)
Операционна системаWindows
Вид софтуерплъгин
Лицензплатен
Уебсайтwww.jetbrains.com/resharper
ReSharper в Общомедия

Целта на ReSharper е да подобри процеса на софтуерна разработка, като предоставя допълнителни функции за анализиране качеството на кода, навигация и търсене, преработка на код, форматиране и почистване, генериране на код и др.

Функции[1] редактиране

Анализиране на кода редактиране

  • Непрекъснат анализ на качеството на кода – ReSharper осигурява непрекъснато анализиране на качеството на кода в C#, VB.NET, XAML, XML, ASP.NET, ASP.NET MVC, JavaScript, HTML и CSS, откривайки грешките и проблемите още преди компилация, като прилага над 1700 проверки.
  • Откриване на грешки и проблеми
    • Грешки – Грешка се показва с червен фонт или с червена къдрава подчертаваща линия, а описанието ѝ се появява след посочване с мишката върху нея.
    • Предупреждения – В допълнение на грешките и предупрежденията на компилатора, ReSharper показва свои предупреждения, които не пречат на компилацията, но могат да представляват сероизни проблеми.
    • Предложения – Предложенията насочват фокуса върху неща, които не са задължително добри или лоши, но могат да бъдат полезни. Предложенията се отбелязват със зелена къдрава подчертаваща линия.
    • Подсказки – Подсказките насочват вниманието към определен детайл в кода и препоръчват начин за подобрение. Във Visual Studio 2005 и 2008 подсказките се отбелязват със зелена подчертаваща линия, а във версиите след това със зелена прекъсната подчертаваща линия.
    • Изключване и конфигуриране на проверките на кода.
  • Бързи поправки – ReSharper осигурява бързи поправки за повечето от проблемите, които отркива. Бързите поправки са представени от червени (за грешки) или жълти (за предупреждения, предложения и подсказки) електрически крушки, които се появява от лявата страна на съответния ред код. Списък с наличните бързи поправки за дадена грешка могат да се видят или чрез кликване на електрическата крушка, или чрез натискане на Alt + Enter.
  • Придвижване между отбелязаните проблеми – Придвижването между грешки, предупреждения и предложения става чрез натискане на F12 (напред) и Shift + F12 (назад). Възможно е придвижване само между грешки (като се прескочат всички предупреждения и предложения), чрез натискане Alt + F12 (за следващата грешка) и Shift + Alt + F12 (за предишната грешка).
  • Проверка в целия solution – Тази проверка работи само, ако на ReSharper е позволено да анализира целия solution. Чрез нея могат да се открият:
    • Неизползвани декларации, които не са private.
    • Неизползвани стойности за връщане и параметри на методи, които не са private.
    • Неизползвани абстрактни или виртуални event-и.
    • Неинициализирани полета.
    • Полета, които не са private и никога не биват използвани.
    • Членове, които могат да бъдат internal вместо public.
  • Персонализиране на търсенето в кода – ReSharper предоставя структурно търсене и заместване за търсене на код конструкции и замяната им с други. Потребителят има възможност да добавя свои инспекции към вече съществуващите такива.
  • Откриване на проблемен код, call stack, стойности – В ReSharper 5 и следващите версии е възможно да се видят всички проблеми, call stack, и стойности на променливи, параметри и полета в прозореца Inspection Results.
  • Inspect This – ReSharper 5 и следващите версии предоставят пряк път Inspect This до няколко функции свързани с анализиране и навигация в кода.

Преработки на код редактиране

Преработките на код в ReSharper работят в C#, голяма част работят във VB.NET, някои работят в JavaScript, XAML и други поддържани езици. Винаги когато потребителят приложи преработка на код, всички засегнати извиквания в ASP.NET съответно се променят. Всички преработки работят в скриплети.

  • Използване на преработките на код – Преработките на код се използват чрез поставяне на курсора върху:
    • Символ в текстовия редактор.
    • Избран код в текстовия редактор.
    • Файл или набор от файлове в Solution Explorer-а.
    • Член или селекция от членове във файловата скруктура или друг прозорец на ReSharper.

След това потребителят може да избере преработка от Refactor менюто или да използва съответната клавишна комбинаци. Командата Refactor This (Ctrl+Shift+R) също позволява да се видят кои преработки могат да се използват на текущата курсорна позиция.

  • Промяна на сигнатурата – Тази преработка позволява да се промени сигнатурата на даден метод по следните начини:
    • Добавяне, премахване, пренареждане или преименуване на параметри.
    • Смяна на връщания тип.
    • Смяна на типа на параметър.
    • Преименуване на метод.

Заедно с промяната на сигнатурата, ReSharper извършва промени навсякъде, където даденият метод се използва.

  • Превръщане на абстрактен клас в интерфейс и обратното.
  • Превръщане на анонимни типове в именувани типове (Само в C#) – Тази преработка превръща анонимни типове в именувани типове в scope-а на текущия метод (локално) или в целия solution (глобално).
  • Превръщане на extension метод в статичен и обратното.
  • Превръщане на индексатор в метод и обратното.
  • Превръщане на метод в property и обратното.
  • Превръщане на property в авто-property (Само в C#).
  • Копиране на тип – Копира тип с друго име или в друг namespace. ReSharper се грижи за създаването на отделен файл за него. При частичните типове всички части се копират, дори и ако са в различни файлове.
  • Енкапсулация на поле – Създава property за съществуващо поле.
  • Отделяне на клас – Служи за разделянето на сложни класове на класове с една отговорност.
  • Отделяне на клас от параметри – Тази преработка създава нов клас или структура и превръща параметрите на избрания метод в енкапсулирани полета на новосъздадения тип (с конструктор с параметри, полета, които пазят стойности и property-та, които връщат стойности).
  • Отделяне на интерфейс – Тази преработка позволява създаването на интерфейс от клас и кара този клас да имплементира създадения интерфейс. Потребителят може да избира кои от членовете да се отделят в интерфейса и да зададе име за интерфейса.
  • Отделяне на метод – Създава метод от селектиран блок от код. ReSharper автоматично анализира кода, за да открие връщаната стойност и параметри.
  • Отделяне на суперклас – Тази преработка позволява създаването на родителски клас за даден клас и преместването на някои от членовете в него.
  • Inline поле – Заменя поле с инициализирания му израз, като заедно с това изтрива полето.
  • Inline метод – Когато е възможно тази преработка прехвърля тялото на метода там, където е извикан, като заедно с това изтрива метода.
  • Inline параметър – Премества параметър в тялото на метода.
  • Inline променлива – Заменя променлива или локална константа с инициализирания ѝ израз.
  • Въвеждане на поле – След прилагане на тази преработка върху селектиран израз или локална променлива, се създава поле, което се инициализира с дадения израз.
  • Въвеждане на параметър – След прилагане на тази преработка върху селектиран израз или локална променлива в метод, се създава параметър, като сигнатурата се обновява навсякъде, където се изплолзва даденият метод.
  • Въвеждане на променлива – След прилагане на тази преработка върху селектиран израз, се създава нова локална променлива, а даденият израз се заменя с тази променлива.
  • Превръщане на статичен/споделен метод в нестатичен/несподелен и обратното.
  • Преместване на инстанционен метод – Тази преработка дава възможност да се премести даден метод от един тип в тип на някой от параметрите.
  • Преместване на статичен член – Премества статичен метод или поле в дуг тип.
  • Преместване на низ от символи (string) в ресурс.
  • Преместване в папка – Тази преработка дава възможност да се премести клас, файл, група от класове или файлове в друг проект или папка в solution-a.
  • Преместване на тип в друг файл или namespace.
  • Преместване на тип в по-външен scope.
  • Преместване на типове в съответстващи файлове – Тази преработка може да се прилага върху един файл или група от файлове, които имат в себе си повече от един тип.
  • Преместване на членове нагоре или надолу по йерархията.
  • Издърпване на параметър – Позволява преместване параметър навсякъде по call stack-a.
  • Преименуване – Тази преработка позволява преименуването на всеки символ включително: namespace-и, типове, методи, параметри, локални променливи, property-та, полета и събития. Автоматично се променят всички референции към този символ. Преименуването работи във всички поддържани езици и технологии.
  • Замяна на конструктор с Factory метод – Заменя конструктора на даден клас със статичен метод, който връща нова инстанция на класа.
  • Безопасно изтриване – Ако изтриването на даден символ не е безопасно, ReSharper ще покаже на потребителя всички негови употреби, които не са безопасни за изтриване и ще даде възможност за тяхната редакция.
  • Превръщане на out параметри в tuple.
  • Използване на базов тип, където е възможно.

Навигация и търсене редактиране

  • Навигиране до – Предоставя бърз достъп до всички нужди на потребителя. Придвижване до пълен списък от всички инструменти, присвояване на интерфейси, списък от възможни функции и други.
  • Отиди до всичко или до определен тип:
    • Отиди до всичко – осигурява бърза навигация за всички възможни дестинации (типове, символи или файлове). Списъкът с предложения се появява спрямо командата, включващ текущите файлове или навигационни предмети. Докато потребителя пише, списъкът се актуализира в съответствие с неговия вход.
    • Отиди до определен тип – позволява на потребителят да се придвижи до определен тип в текущото приложение.
  • Отиди на символ – Потребителят може да търси бързо, чрез въвеждане на първоначалния символ или всички последващи символи, съдържащи се в името на думата която търси.
  • Отиди до файл – Навигира до файл в рамките на текущото приложение, като поддържа всички техники за търсене и заместващи символи.
  • Отиди до член на класа – Насочва потребителят към даден метод или поле в текущия клас. Тази функция работи с членовете на файлове от C#, VB.NET, XAML, XML файлове, изграждане на скриптове и ASP.NET файлове.
  • Отиди до базов Клас – Потребителят може да се придвижи нагоре в йерархията до базовия клас или метод, като може да види скрити методи, (присвояване) имплементации или специални полета.
  • Отиди до (присвояване) имплементация – Тази навигация позволява на потребителя да отиде до базовия тип или член на която и да е от неговите крайни реализации, заобикаляйки междинни етапи по веригата на наследството.
  • Отиди до декларация – ReSharper ще покаже декларация за съответния тип, методът, областта, или локалната променлива в съответния файл източник. Резултатът ще се изведе в редактора, както оглед Метаданни или де компилиран код.
  • Отиди до типова декларация – Насочва потребителя към декларацията от вид променлива, поле или параметър, на който принадлежи.
  • Отиди до достъпни приложения (инструменти) – Насочва от тип до всички дестинации в приложението, където можете да се получи копие на този тип:
    • публични полета;
    • методи който връщат стойност;
    • параметри и други;
  • Отиди до пряко свързани файлове – Отвежда потребителя до всеки файл, който има референция от дадения клас.
  • Отиди до последно редактирано местонахождение – Отвежда потребителя до файла, в който последно са правени промени по кода.
  • Отиди до следващия член – Отива на следващия елемент файл в C# или VB.NET кодови файлове, или към следващия маркер в XML или XAML файлове, като се използва комбинацията „Alt + Up“.
  • Отиди до предишния член – Отива до предишния елемент файл в C# или VB.NET кодови файлове, или към следващия маркер в XML или XAML файлове, като се използва комбинацията „Alt + Down“.
  • Отиди до външна библиотека – Позволява на потребителя да разглежда кода на дадена библиотека, която не е част от неговия проект, а има референция към нея, като използва наготово част от функциите които библиотеката предоставя. Както и изтегля документацията за нея, предоставена от създателите ѝ.
  • Намери апликации (приложения) – Бързо открива апликации (приложения) за всеки символ (тип, метод, поле и други) в кода. Намерените резултати се показват в прозорец, подредени по йерархия. Допълнителните функции в дадения резултат включват:
    • Преглед на кода.
    • Филтриране по използваемост, използване на атрибути, използване на документация и други.
    • Групиране по категории.
    • Части от скорошно използване или търсене.
  • Отиди до мястото на което се използва даден обект – Насочва потребителят до мястото, на което е декларирана търсената променлива, метод или клас.
  • Изпъкване на обекти – При маркиране на даден обект, той се оцветява, също така се оцветяват и местата, на които обекта се използва или е деклариран, с цел да изпъкне и лесно откриване на обекта.
  • Структурно търсене и замяна – Позволява на потребителят да търси дума в текущия файл, както и да замести думата с друга на едно или всички места, на което резултатът съвпада с търсенето.
  • Типова йерархия – с ReSharper потребителят може да види, в специален прозорец, йерархията на наследяване на определен клас. Прозорецът показва базовият тип и наследниците на дадения клас.
  • Файлова структура – Позволява на потребителят да види, за всички поддържани езици и типове файлове, в C# или VB.NET файлове, какви методи, полета, класове и региони, те съдържат, както и навигация директно към техните декларации.
  • Отметки – Позволява бърз достъп до дадено място в приложението, към което потребителя е създал пряк път.
  • Прегледай скорошните файлове – След натискане на комбинация „Ctrl + E“ се отваря изскачащ прозорец със списък на последно отваряните файлове, където можете да се избере всеки елемент, който да се отвори в компилатора.
  • Stack Trace Explorer – Позволява да се проследят всички функции, които се извикват при стартиране на приложението.
  • To-Do Explorer – Предоставя списък с местонахождения, в който потребителят е заявил, че предстои да се направят промени.
  • Намери действие – Resharper помага бързо да се намери и да се приложи някой от неговите действия, без да се рови в менюто (под действие, се има предвид, изпълнима командата, достъпна за текущата позиция или команда, чрез която се отваря прозорец с инструмент).

Асистиране при писането на код редактиране

  • Оцветяване на кода – ReSharper разширява вграденето оцветяване на кода във Visual Studio, като добавя персонализирано оцветяване на елементите в кода за различните езици.
  • Контекстни действия – Контекстните действия са команди за бърз достъп към различни фукнции на ReSharper които се показват в редактора, предлагайки изпъление на малки трансформации на кода, рефакториране или навигация.
  • Завършване на кода – ReSharper допълва и разширява вградените във Visual Studio IntelliSense възможности. Например автоматичното завършване на кода прави предложение за завършване на база предишни действия на потребителя. Приложението поддържа CamelHumps, което позволява, с изписването само на главните букви на даден атрибут, той да бъде завършен.
  • Основно завършване – С натискане на комбинацията Ctrl+Space, ReSharper разпознава променливи и методи, ключови думи и др., като предлага префикси при декларирането на идентификатори.
  • Генеративно завършване – Използва се с Ctrl+Space. Позволява бързо имплементиране на интерфейс членове, генериране на пропъртита, частични тела на методи и частични класове.
  • Умно завършване – Използва се с комбинацията Ctrl+Shift+Space, като филтрира списъка от методи, полета и променливи за да избере очакваният тип на израза.
  • Завършване на тип с импортиране – Използва се с Ctrl+Alt+Space. За разлика от символното завършване (което довършва само типове, достъпни за текущия namespace), ReSharper изобразява всички типове, които съвпадат с дадения префикс, независимо от namespace-a, на който принадлежат. При избор namespace-a се импортира автоматично.
  • Двойно завършване – Когато списъка с предложения за завършване не е пълен или не съдържа елементите, които се очаква да има в него с повторно натискане на комбинацията за завършване, ReSharper разширява листа с допълнителни елементи.
  • Филтриране при завършването на кода – ReSharper предоставя възможност за филтриране и сортиране на предложенията за довършване на израза по вид, ниво на достъп и др.
  • Complete Statement – Предоставя възможността за автоматично вмъкване на нужните синтактични елементи (скоби, точка и запетая и др.) Комбинацията за използване е Ctrl+Shift+Enter.
  • Разширено конфигуриране на именуването – ReSharper позволява да се персонализира именуването за различните езици и символи, включително типове, namespace-и, интерфейси, параметри, property-та, методи, полета и т.н.
  • Асистент за регулярни изрази – При писането на регулярни изрази, ReSharper позволява лесно да се анализират съществуващите регулярни изрази, което позволява бързо откриване и поправяне на грешки в израза.
  • Информация за параметрите – Когато се извиква метод, ReSharper показва възможните сигнатури на метода със съответната документация към тях, а докато се добавят нови аргументи, ReSharper оцветява в сиво, сигнатурите които стават неизползваеми.
  • Отбелязване на ограничителите – Двойка ограничители се оцветяват при поставяне на курсора върху единия от тях
  • Импортиране на пространства от имена(namespace) – При използването на данни от namespace, който не е бил включен предварително, ReSharper показва прозорец, който показва името на namespace-а, който трябва да бъде импортиран и с натискане на комбинацията Alt+Enter импортирането се завършва.
  • Автоматично вмъкване на разделители – При изписване на (, [, ", или ' ReSharper автоматично допълва огледаленият символ. Опцията може да бъде спряна по желание.
  • Пренареждане на кода – ReSharper позволява бързо пренареждане на елентите в кода след маркирането им, с натискане на комбинацията от Ctrl+Shift+Alt+Up/Down/Left/Right.
  • Бързо документиране – С натискане на Ctrl+Q при маркиран клас, метод/функция или символ, ReSharper показва прозорец с документацията, както и линк към други ресурси.
  • Коментиране / Разкоментиране на кода – С клавишната комбинацията от Ctrl+/ се закоментира ред, а с комбинацията от Ctrl+Shift+/ се използва за коментиране на цял блок.
  • Подчертаване на текущия ред – С маркиране на опцията Highlight current line в ReSharper Options, текущият ред в кода се оцветява в цвят по избор.
  • Дублиране на ред или селекция – След маркиране на реда или селекцията от код и натискането на комбинацията Ctrl+D се извършва дублиране.
  • Многобройни записи – ReSharper предоставя специална Paste функция която запомня многобройни записи и при нужда ги показва в прозорец с табличен вид подредени по номера.

Структура на проекта редактиране

  • Диаграма на проектната зависимост – Предоставя възможност на потребителят да разглежда зависимости в проекта с помощта на визуално представяне на архитектурата на приложението. В този прозорец може да се извършва форматиране на кода, като преименуване на именувани пространства или премахване на неизползвани такива, навигационни действия и други команди.
  • Диаграма на типовата зависимост – ReSharper позволява визуалното изучаване на различните зависимости между дадени класове и интерфейси. В този тип диаграма, можете да се добавят неограничен брой видове от различни проекти или компилирани възли и визуализиране на различни видове зависимости между тях.
  • Регулация на именувани пространства – Потребителят има опция за преименуване на именувани пространства, с цел синхронизиране на имената на пространствата в папките на проекта и подобряване структурата на текущото приложение.
  • Премахване на неизползваните референции – ReSharper предоставя възможност за премахване на неизползваните референции към дадена библиотека, с цел намаляване обема на кода.
  • Намиране на зависимости в кода – Позволява намирането на код, който зависи от избрания проект. Намира съответните зависимости, като предоставя изходящи справки, срещани в рамките на определения обхват.
  • Assembly Explorer – Този прозорец позволява откриване на компилирани събития, като се използва Навигация и Търсене за да се изследват. Assembly Explorer изброява именните пространства в рамките на събранието, които могат да бъдат допълнително разширени, за да се проследят типовете и членове им, както и предоставя справки за сглобяването им в приложението.
  • Маркиране в Solution Explorer – Тази навигация функция, налична с Ctrl + E ви позволява да маркирате съответния възел в Solution Explorer за всеки клас, който е отворен в текстовия редактор. ReSharper подчертава възелът, което позволява да се провери къде се използва.
  • Разпределение на запазването на настройките на ReSharper – Настройки ReSharper се записват чрез модел на разпределена за съхранение, което означава, че всяка настройка или група настройки могат да бъдат запазени отделно и ReSharper ще съчетава и прилага всички от тях.

Генериране на код редактиране

  • Създаване след употребата – С ReSharper е възможно да се ползват методи/функции, пропъртита и дори класове преди те да бъдат дефинирани. ReSharper ще предложи бързи поправки (за C#) или няколко контекстни действия (за VB.NET) за генериране на съответния символ, на базата на използването му, а след това ще коригира дефиницията според контекста. Например при генерирането на методи, ReSharper не само създава методите, но също и разпознава типът данни, който те трябва да върнат както и типовете на техните параметри.
  • Генериране на типови членове – Изпълнява се с натискане на комбинацията от Alt+Ins.
  • Генериране на типови конструктори – Изпълнява се с избиране на Constructor от менюто Generate.
  • Генериране на пропъртита – Първо се избира Read-only properties или Properties от менюто Generate, след това се избират едно или повече полета.
  • Имплементиране и коригиране на методи.
  • Генериране на делегиращи членове – Делегирането на членове предоставя средстава за енкапсулиране на част от поведението или публикуване на методи от даден клас, чрез собствения интерфейс на класа. След посочване на полетата и техните методи, ReSharper генерира обвиващи методи в настоящия клас.
  • Генериране на форматиращи членове – Във всеки клас може да се създаде метод ToString(), който връща форматиран низ.
  • Генериране на членове за равенство – ReSharper не само създава методите Equals() и GetHashCode(), но също така генерира нужният код за проверка на равенството и/или пресмятане на хеш кода. В допълнение генерира и оператори за равенство и неравенство.
  • Конфигурация на опциите за генериране – ReSharper предоставя контрол над това как нови членове да бъдат генерирани, от менюто ReSharper → Options → Languages → Common → Members Generation.

Код шаблони редактиране

  • Live шаблони – Използват се чрез написване на абревиатурата на шаблони, след което се натиска Tab. За навигация между параметрите на шаблона се използва Tab или Enter. За разлика от код снипетите, ReSharper може да предположи от контекста кои полета, променливи и типове могат да се използват в съответните шаблони. ReSharper предлага 30 live шаблона за C#, повече от 20 за VB.NET, както и шаблони за ASP.NET, XML, HTML, JavaScript, Razor и Resx файлове.
  • „Загради със“ шаблони – Използват се за заграждане на израз или блок от код с if/else, try/catch или друга конструкция.
  • Файл шаблони – Използват се добавяне на нови файлове към проекта с предефинирани фрагменти от код в тях.
  • Персонализиране, конфигуриране и споделяне на шаблони – Потребителят има възможност да създава свои шаблони или да променя тези, които идват с ReSharper. Това става чрез шаблонен редактор (Template Editor), който се отваря в отделен панел. За управление и споделяне на шаблоните се използва Templates Explorer.
  • Импортиране и експортиране на шаблони – Шаблоните могат да се експортират към файл, който да се споделя и импортира от други разработчици.

Почистване на кода (Code Cleanup) редактиране

Разширен набор от функции, които съчетават код форматиране с отстраняване на излишния код и прилагане на общоприети конвенции. С Code Cleanup, можете не само да се форматира код, но и да се премахват кодови съкращения, пренареждат членове по тип, според последните конвенции на C#.

  • Форматиране на код – ReSharper може да форматира произволно избран блок от код, целия код в текущия файл, всички файлове в директория, или дори в целия проект, в зависимост от предпочитанията на потребителя или вградени конвенции.
  • Оптимизиране на директиви и именувани пространства – За да се направи приложението по-разбираемо, можете да се премахнат излишните директиви от C# и VB.NET класовете.
  • Премахване на съкращения в кода – След като ReSharper анализира кода, той знае къде има празен конструктор, израз, делегат или друга ключова дума, която не е необходима на приложението. ReSharper премахва уловените обекти автоматично.
  • Преминаване към новите версии на C# – Предоставя помощ за използване на кодовите структури вградени в C#, като се приспособява към новите версии.
  • Класове и видове оформления – ReSharper автоматично подрежда класове и членове в кода. Членовете биват сортирани и групирани в определени райони в зависимост от техните фактори за достъп. ReSharper осигурява оформление по подразбиране на модели във визуалния редактор.
  • Конфигурация на стила на форматиране и споделяне – Със стотици варианти, напълно можете да се персонализира начина, по който ReSharper третира различни аспекти на стил на кода, като разширява шаблоните за да завърши и генерира кода автоматично.

Компонентно тестване редактиране

  • Пускане и дебъгване на тестове – ReSharper автоматично открива компонентни тестове на NUnit и MSTest за .NET проекти и на QUnit и Jasmine за JavaScript. xUnit.net и MSpec се поддържат чрез плъгини. Вляво от дефинициите на тестовите класове и методи, ReSharper поставя специална иконка, която служи за пускане и дебъгване.
  • Експлорер за компонентни тестове (Unit Test Explorer) – ReSharper предлага структуриран лист от тестове, който спомага за преглеждането на структурата на тестовете за целия solution. Използвайки експлорера, потребителят може да стартира всяка комбинация от тестове в една или повече тестови сесии.
  • Сесии за компонентно тестване (Unit Test Sessions) – ReSharper пуска компонентните тестове в прозореца за сесии. Той е проектиран, за да помога при изпълнението на всякакъв брой сесии, както самостоятелно една от друга, така и едновременно. В режим на дебъгване само една сесия може да бъде пусната. Дървото от компонентни тестове показва структурата на всички тестове, които принадлежат на дадена сесия. Те могат да се филтират така, че да се показват само успешно преминалите, неуспешните или игнорираните. Придвижването до кода на някой от тестовете става чрез двойно кликване. В лентата за прогреса може да следи състоянието и прогреса на настоящия тест. Панелът за преглед позволява да се анализира резултата от неуспешните тестове и с едно натискане на мишката да се достигне до реда, на който е възникнала грешката.
  • Профилиране на компонентните тестове с dotTrace – За целта е нужно инсталирането на dotTrace Performance инструмент разработен от JetBrains.
  • Анализиране на покритието на кода с dotCover – За целта е нужно инсталирането на dotCover инструмент разработен от JetBrains.

Интернационализация редактиране

ReSharper 5 и следващите версии предоставят функции за работа с resx файлове и ресурси в C#, VB.NET, ASP.NET и XAML.

  • Отбелязване на низове (strings), които могат да се локализират – ReSharper намира низове, които могат да се локализират, отбелязва ги и помага те да бъдат преместени в ресурсен файл.
  • Преместване на низове (strings) в ресурсен файл – В зависимост от настройките на проекта, низовете могат да бъдат отбелязани с къдрава подчертаваща линия или да не бъдат отбелязани. Ако не са отбелязани преместването става чрез натискане на Ctrl+Shift+R и избиране на преработка Move to Resource, а ако са отбелязани става чрез натискане на Alt+Enter.
  • Преработки – ReSharper предлага и следните преработки за интернационализация:
    • Преместване на ресурс (Move Resource) – премества съществуващи ресурсни записи между ресурсните файлове.
    • Преименуване на ресурс (Rename Resource) – помага за смяна на name атрибута в ресурсен запис.
    • Inline Resource – изтрива ресурсен запис от ресурсен файл и го заменя с оригиналния низ навсякъде, където е бил уботребяван.
    • Безопасно изтриване на ресурс (Safe Delete Resource) – прави опит за изтриване на ресурсен запис с всички негови използвания без да чупи кода.
  • Структура на ресурсен файл – ReSharper предоставя специална версия на прозореца Файлова структура (File Structure) за наблюдение на структурата на ресурсните файлове.
  • Проверки на кода за ресурсни файлове – ReSharper предоставя редица проверки за откриване на проблеми с ресурсните записи. ReSharper отбелязва проблема в текстовия редактор и предлага бърза поправка за неговото оправяне.
  • Намиране на приложения за ресурси – Функцията намиране на приложения работи и за ресурси. Може да се търси за появата на ресурсен запис и в кода, и в ресурсните файлове.
  • Навигация между култури и ресурси – Функциите Отиди до наследник (Go to Inheritor) и Отиди до родител (Go to Base) помагат за придвижването от ресурсни записи в ресурсен файл с неутрална култура към съответните записи в ресурсен файл със специфична култура и обратно.

ASP.NET и ASP.NET MVC инструменти редактиране

ReSharper помага за ефективна работа с ASP.NET и ASP.NET MVC проекти с пълния пакет от анализиращи кода, навигационни, аналитични и кодгенериращи инструменти. Някои от тях работят в уеб приложения по начина, който работят в C# или ASP.NET, други са специализирани за уеб разработка.

  • Код анализ и асистиране – Голяма част от код анализиращите и асистиращите инструменти на ReSharper работят в ASP.NET и ASP.NET MVC. 
    • Проверки в кода и бърза поправка на синтаксиса – Когато се работи със C# код, използван в ASP.NET, може да се използва пълният набор на ReSharper функциите, включително и цялата гама от кодови инспекции и бързи поправки.
    • Контекстни действия – ReSharper осигурява 25 контекстни действия за боравене с ASP.NET. Например:
      • Заменяне и премахване на тагове.
      • Конвертиране на HTML обекти.
      • Създаване на събития и свойства.
      • Вмъкване на таблични редове и колони.
      • Преместване на HTML код в ресурсни файлове.
      • Добавяне на код зад файловете.
    • Оцветяване на синтаксиса – Полага за бързо ориентиране в кода.
    • Довършване на кода – Довършване на кода работи за тагове и атрибути.
    • Автоматично вмъкване и регистриране – Автоматично вмъкване на namespace-и и автоматична регистрация на потребителския контрол.
    • Други асистенти на кодирането – ReSharper автоматично вмъква затварящ таг, веднага след като се въведе отварящ таг, или затваряща кавичка след въвеждане на отваряща кавичка. Освен това двойка ограничители се оцветяват при поставяне на курсора върху единия от тях. След селектиране, селекцията може да се придвижва нагоре и надолу (за тагове) или наляво и надясно (за атрибути).
    • Интернационализация – Ако в aspx страница има HTML, който трябва да се локализира, потребителят може да го селектира, да натисне Alt+Enter и да го премести в ресурсен файл.
  • Навигация и търсене в ASP.NET – Голяма част от навигационните функции на ReSharper е на разположение в ASP.NET.
    • Отиване до подобни файлове.
    • Отиване до декларации.
    • Отиване до използвани символи.
  • Код генериране и шаблони – ReSharper позволява на ASP.NET MVC и ASP.NET разработчиците да генерират уеб формуляри, етикети и атрибути чрез набор от 20 пакетни уеб-специфични шаблони, както и чрез функцията генериране на код.
    • Live шаблоните (Ctrl+J) спомагат за бързото създаване на нови контролери, скрипт блокове, тагове и атрибути.
    • Ограждащите шаблони (Ctrl+Alt+J) спомагат за ограждането на код или текст от тагове, линкове или foreach блокове.
    • Файловите шаблони (Ctrl+Alt+Ins) спомагат за създаването на нови уеб формуляри, потребителски контролери и главни страници.
  • ASP.NET поддръжка – В допълнение към общите функции на ASP.NET описани по-горе, ASP.NET MVC разработчиците получават допълнителен пакет от функционалности, които включват – ASPX и Razor.

XAML инструменти за редактиране редактиране

С Resharper, потребителят получава допълнителна помощ при редакцията на XAML файлове, когато работи със Silverlight, WPF, Metro или Windows Phone приложения. Тази помощ включва анализиране на качеството на кода, преработка на код, генериране на код, пренареждане и бързо придвижване.

  • Анализиране на качеството на кода.
    • Пример 1: Грешки на ниво XAML език – Ако потребителят работи върху WPF проект, където е позволен само XAML 2006, и ReSharper срещне generic обект от XAML 2009, ще го отбележи като грешка. След натискане на Alt+Enter, ReSharper ще предложи бърза поправка.
    • Пример 2: Несъществуващи ресурси – Ако потребителят използва ресурс, който все още не е създаден, ReSharper ще отбележи това. След натискане на Alt+Enter, ReSharper ще предложи няколко възможни места за създаване на липсващия ресурс. Ако типът на генерирания ресурс все още не е създаден, ReSharper ще предложи опция за създаване на CLR тип или XAML тип.
    • Пример 3: Коментари на неподходящо място – Ако по случайност потребителят сложи коментар в елемен, ReSharper ще отбележи това и ще предложи да го премахне.
  • Разширен XAML IntelliSense – Допълването на код на ReSharper работи и за XAML тагове. Поддръжката на CamelHumps спомага за бързото добавяне на атрибути. Това става чрез въвеждане на няколко символа и натискане на Ctrl+Space за показване на списък с подходящи предложения. Извикването на умното допълване (Smart Completion) (Ctrl+Shift+Space), предоставя допълнително опции в зависимост от местоположението в кода. За атрибутите, в които се очакват цветове, допълването на код показва и цветовете заедно с имената им.
  • XML помощници за редакция – Resharper поддържа различни контекстни действия, които опростяват работата с XML структури и са полезни в XAML. Например:
    • Сменяне на името на таг с различно име. Това може да се прави за един или група от тагове.
    • Превръщане на всеки атрибут във вложен елемент.
    • Премахване на таг, премествайки дъщерните му елементи едно ниво нагоре.
    • Разширяване на празен таг, т.е. добавяне на затварящ таг.
  • Пренареждане на код – Тази функция дава възможност да се местят елементи в XAML файл или атрибути в тези елементи. И двете операции се изпълняват с натискането на Ctrl+Alt+Shift. При работа с атрибути тези клавишни комбинации позволяват местенето им в рамките на тага, така че при натискане на лява или дясна стрелка позицията на атрибута се сменя. При натискане на стрелките нагоре или надолу се мести целият таг. Ако се разшири селекция (с помощта на Ctrl + W), за да се обхване тага с всичко в него, може да се използват лява и дясна стрелка по същия начин, с единствената разлика, че тази комбинация ще „понижи“ текущата селекция, поставяйки я вътре всеки таг, който пресече.
  • Навигация и търсене – Менюто Отиване до (Navigate To) работи в XAML по същия начин, по който работи и в C#. Натискането на Ctrl+Shift+G отваря меню с няколко възможни дестинации. Навигацията чрез Отиване до файл (Go To File) работи в XAML файл, както в C# файл, позволявайки на потребителя да се придвижва до елемент с определен тип, име или ключ. При натискане на Ctrl+Shift+Alt+G в XAML файл се извежда списък с подобни файлове. Отиване до декларация (Go to Declaration) (Ctrl+B и Ctrl-click) работи по същия начин както и в C# код. Например, ако потребителят използва Ctrl-click върху името на клас, това ще го отведе до декларацията на класа. Прозорецът Файлова структура (File Structure) може да покаже структурата на XAML файла, което позволява на потребителя бързо да се придвижи до необходимия елемент от кода. Намери употреби (Find Usages) (Alt+F7) намира всички употреби на даден елемент, а Отбележи употреби (Highlight Usages) (Ctrl+Shift+F7), отбелязва всички места във файла, където даден символ е използван.
  • Преработка на XAML код – Някои от преработките, които работят в C# също работят и в XAML. Като например преименуване, безопасно изтриване и менюто Refactor this.
  • Генериране на Dependency Properties – Live шаблоните на ReSharper спомагат за създаването на dependency properties в WPF и Silverlight.

Крос-езикови функции (Cross-Language Functionality) редактиране

  • Навигация и търсене – В ReSharper всички дейности свързани с навигация и търсене вземат под внимание кода на всички езици, включително C#, VB.NET, ASP.NET, ASP.NET MVC, JavaScript, HTML, CSS, XML, XAML и Build Scripts.
  • Преработки на код – Преработката на кода на ReSharper е проектирана да взима под внимание целия код във всеки език. Всеки път, когато трябва да се генерира нов код в процеса на редакция на крос-езиков код, рефакторирането работи на 100%. Единственото нещо, което, естествено, не може да бъде направено е пресъздаването на код, написан на един език, на друг език (например при използване на Move Static Method преработка, за премесване на метод от VB към C# или обратното). В тези случаи се показва предупреждение.
  • Допълване на кода и подпомагане – За разлика от IntelliSense-а на Visual Studio, ReSharper не изисква проекти на други езици да бъдат компилирани преди символите да са налични за допълване на кода, кратка документация и информация за параметрите.(Генерацията на кода и други функции на ReSharper работят по същия независим от компилация начин).
  • Конвенция за именуването – С общите езикови настройки в диалоговия прозорец на ReSharper, можете да определите общи конвенции за именуване и заглавна част на файла за всички езици.
  • Компонентно тестване – Компонентното тестване е налично и еднакво полезно за тестове написани на C# или VB.NET. Компонентно тестване на JavaScript се поддържа, чрез използването на рамки като QUnit и Jasmine.

NAnt и MSBuild Scripts редакция редактиране

  • Отбелязване на грешки в движение – ReSharper анализира скриптовете в движение – докато потребителят пише – и отбелязва непознати свойства, таргети, задачи и атрибути. Също така, в кода са налични индикатор за състояние и навигация между грешките.
  • Бързи поправки – В скриптовите файлове ReSharper предлага бързи поправки за непознати свойства, таргети, задачи и техните атрибути. Бързите поправки са изобразени с червена електрическа крушка, която се появява автоматично от ляво на реда, съдържащ грешката, когато потребителят постави курсора върху грешката.
  • Допълване на кода – ReSharper позволява на потребителя да попълни имената на свойствата, таргетите, задачите и атрибутите, които се съдържат в текущия обхват (scope).
  • XML Редактиране – Всички функции за редактиране и подпомагане предоставени за XML са на разположение и на скриптовете.
  • Навигация и търсене – ReSharper улеснява навигацията по много начини. По-конкретно потребителят може:
    • Да отиде до декларацията на задачи, таргети и свойства от референцията.
    • Да намира употреби.
    • Да се придвижва между употребите.
    • Да отбелязва употреби.
  • Преработки – При преименуване на свойство или таргет чрез преименувай (Rename) преработката, всички негови референции, както и навсякъде, където са употребени в коментари и низове, автоматично се актуализират, за да отразят промяната. Това става чрез натиснете на F2 върху символа, който трябва да бъде променен. При използване на безопасно изтриване (Safe Delete) на target или свойство в build файл, ReSharper извършва всички необходими потвърждения и операции, за да премахне избраните символи. Resharper може също и да премахне всяка противоречива референция. Това става чрез натискането на Alt+Del върху символа за безопасно изтриване.
  • Структура на файла – С прозореца Структура на файла, могат да се видят какви свойства и таргети съдържа текущтият скрипт.

Отворен приложно-програмен интерфейс (Open API) редактиране

Функционалността на ReSharper може значително да бъде разширена чрез Open API. Всъщност повечето функции на ReSharper се прилагат използвайки същия този интерфейс.

Някои от функционалностите, които могат да бъдат добавени чрез Open API са:

  • Отбелязване на нови грешки и предупреждения.
  • Нови бързи поправки.
  • Персонализирани прозорци с инструменти.
  • Нови преработки.

За повече информация за използването на Resharper’s Open API вижте:

NuGet базираният Extension Manager спомага за откриването, инсталирането и деинсталирането на разширения на ReSharper. Това включва не само напълно разработени плъгини, но също и набор от кодови шаблони или образци за структурирано търсене и замяна.

Конзолни инструменти редактиране

През юли 2013 г., JetBrains пуска безплатна конзолна версия на ReSharper. Тя представлява набор от самостоятелни интрументи, които извършват стотици ReSharper проверки извън Visual Studio и в допълнение намират дублиращ се код. Инструментите могат да се използват без ReSharper да бъде инсталиран и могат да се интегрират с Продължително интегриране (Continuous Integration) или чрез сървъри за управление на качеството на кода.

Източници редактиране