ReSharper
ReSharper — это плагин для ПК, обеспечивающий максимизацию продуктивности работы в программе Microsoft VisualStudio. Дополнение анализирует код, выявляет ошибки до компиляции, предлагает способы автозаполнения, поиска, навигации и синтаксической подсветки. Помогает генерировать, оптимизировать и форматировать код. По этой ссылке можно скачать последнюю версию ReSharper на русском языке.

| Лицензия | Условно-бесплатная |
| ОС | Windows 10/8,1/8/7/MacOS/Linux |
| Язык интерфейса | Русский, английский |
| Разработка | JetBrains |
| Разновидность программы | Плагин |
Краткое описание
- программные языки JavaScript/ C++/VB.NET/C#/TypeScript;
- инструменты для работы с HTML/ASP.NET/XML/CSS/ASP.NET MVC/MSBuild/XAML/NAnt;
- порядка 40 авторефакторингов;
- несложное юнит-тестирование в среде NUnit/MSTest и подобных;
- подсветку неоптимальных рагментов кода и ошибки, исправление через опцию Quick-Fixes;
- преобразование кода по распространённым сценариям — Context Actions;
- подсказки на этапе ввода с учётом ожидаемого типа выражения;
- помощь в адаптации.NET-приложений;
- с помощью инструмента ValueAnalysis анализирует data-flow и control-flow в функциях, ищет избыточные/недостижимые ветки кода, предупреждает о вероятных исключениях при вызове операторов.
Разработчики API используют программу вместе со специально разработанными плагинами — NHibernatePlugin/ActiveMesaR2P/StyleCopforReSharper/Agent Smith. Для использования удобного плагина, достаточно бесплатно скачать ReSharper на нашем сайте и установить на свой компьютер.

Возможности программы
Для всех языков, с которыми работает ReSharper, доступны:
- действия распознавания логических ошибок, неверных конструкций с подсвечиванием и исправлением без выхода из редактора — БД решений исчисляется более, чем 1 тыс. вариантов, из которых ПО предлагает одно или несколько;
- функции управления — улучшенный IntelliSense, автоимпорт внешних сборок, переупорядочивание кодовых фрагментов, несколько сотен контекстных правок;
- механизм ReSharper — для синхронизации настроек форматирования и именований внутри команды, с возможностью комбинировать программные и пользовательские настройки;
- адаптация к многоязычным приложениям .NET типа с поддержкой .resx файлов и ресурсов кода VB.NET/XAML/C#/ASP.NET для безопасной локализации;
- навигация и поиск через нажатие нескольких кнопок, при этом, программа выстраивает визуальную структуру наследования, по которой можно перемещаться к любому блоку;
- опции для работы с часто повторяющимися конструкциями, кроме этого, можно создавать шаблоны;
- рефакторинги, которые включают как масштабные действия, так и сотни опций для небольших трансформаций.
Прямо в редакторе распознаются, запускаются и отлаживаются тесты QUnitNUnit, xUnit, JasminMSTest, как по отдельности, так и параллельно.
Чтобы познакомиться со справочными материалами о программе от разработчиков, нужно посетить официальный сайт ReSharperCopy.
Встречайте ReSharper C++
В течение десяти с небольшим лет своего существования ReSharper был ориентирован на .NET-разработчиков, что не удивительно для плагина к Visual Studio. 2 года назад, в чем-то благодаря удачной первоапрельской шутке, мы вплотную занялись поддержкой С++ в ReSharper, и вот совсем недавно был выпущен первый официальный релиз ReSharper C++ — нового продукта специально для разработчиков на C/С++ в Visual Studio. (Тем, кто заждался релиза CLion для кросс-платформенной разработки на C/C++, понадобится еще немного терпения.)
Чем же может быть полезен ReSharper C++? Разберем основные возможности продукта.
Статический анализ кода
Как только вы открываете Visual Studio с плюсовыми проектами, ReSharper C++ начинает анализировать ваши проекты и предлагать исправления для проблем, которые находит, и рекомендовать те или иные улучшения. Например, если вы воспользуетесь типом, не прописав ему заголовок, ReSharper C++ предложит вам сделать это:

Если у вас есть прототип функции, но не хватает ее определения, ReSharper C++ предложит сгенерировать тело функции либо в этом же, либо в отдельном файле:

Если вы решите воспользоваться функцией printf() , ReSharper C++ проверит аргументы форматирования и предложит фиксы, если найдет проблемы:

Макросы и шаблоны
ReSharper С++ полностью понимает все макросы, так что анализ он осуществляет именно на том коде, который получится после препроцессинга. Это дает нам ряд уникальных возможностей: например, можно «разворачивать» макросы прямо в коде:
В случае реализации факториала через шаблоны ReSharper C++ может сразу проверить любой static_assert , написанный с использованием этого шаблона:

Навигация и поиск
ReSharper C++ позволяет очень быстро навигироваться по крупным проектам и искать в них нужный код. Вот некоторые из поддерживаемых возможностей навигации:
- Go to Everything находит по названию любой тип сущности (класс, член класса, файл или папку) во всем солюшене сразу. Результаты также можно фильтровать более узкими командами, такими как Go to Type, Go to File и Go to Symbol.
- Go to File Member позволяет быстро найти символ в том файле, где вы сейчас работаете.
- Go to Base/Derived помогает искать наследников и родителей по классам или элементам класса. Go to Definition позволяет быстро перейти к месту объявления символа.
- Go to Related Files применяется для перехода к файлам, которые имеют какое-то отношение к текущему. Это могут быть включенные заголовочные файлы или CPP-файлы. Кроме того, ReSharper позволяет быстро переходить между заголовочным и СРР-файлами (Ctrl+B).
- Navigate to specializations позволяет найти все специализации шаблонного класса:

Для поиска всех вхождений того или иного символа в ReSharper C++ имеется механизм Find Usages с возможностями предварительного просмотра, группировки и фильтрации.
Следует отметить, что многие команды навигации доступны из контекстного меню, которое открывается по нажатию Alt+Enter:

ReSharper С++ также включает в себя несколько окон для навигации в больших сложных проектах. Одно из этих окон называется File Structure: оно позволяет быстро сориентироваться в структуре текущего файла:
Еще одно окно называется Inheritance Hierarchy, и в нем отображается иерархия наследования типов в виде дерева:

Завершая тему навигации, существуют команды для перехода по элементам класса (Go to Next/Previous Member) и по найденным в файле ошибкам (Go to Next/Previous Issue).
Шаблоны и генерация кода
Мы адаптировали систему генерации кода и шаблонов к С++. Это означает, что в ReSharper С++ есть поддержка следующих знакомых пользователям основного ReSharper механизмов:
-
Live Templates — это шаблоны, которые ведут себя во многом подобно Visual Studio snippets, но они намного более чувствительны к контексту, а их поведение можно программировать под свои задачи.
Помимо шаблонов, ReSharper C++ также имеет штатные механизмы генерации кода в меню Generate:

Рефакторинги
Возможности рефакторинга кода — это своего рода визитная карточка ReSharper. Вот несколько рефакторингов, которые уже есть в ReSharper C++:
- Rename позволяет переименовать символ (например имя класса или поля) и его вхождения во всем проекте.
- Introduce Variable позволяет выделить часть вычислений и сохранить их в отдельной переменной:
Заключение
Вот видео, в котором показана вышеописанная функциональность в действии:
Для использования ReSharper C++ нужна либо отдельная лицензия, либо лицензия ReSharper Ultimate.
ReSharper C++ можно скачать отдельно или в составе полного инсталлятора ReSharper Ultimate. В обоих случаях действует 30-дневный пробный период.
ReSharper: Turbocharge Your .NET Development
ReSharper is a popular developer productivity extension for Microsoft Visual Studio. It automates most of what can be automated in your coding routines. It finds compiler errors, runtime errors, redundancies, and code smells right as you type, suggesting intelligent corrections for them.
ReSharper helps you explore code by visualizing the structure of files, type and style hierarchies, call and value chains, project dependencies. It allows you to instantly traverse your entire solution and jump right to the exact file and line that you are looking for, decompiling library code if necessary.
Dozens of solution-wide refactorings are available to help you safely change your code base. Code formatting and cleanup features allow you to get rid of unused code and help your entire team to ensure compliance to coding standards.
Why ReSharper
With unparalleled support for C#, VB.NET, XAML, JavaScript, TypeScript, XML, HTML, CSS, ASP.NET, ASP.NET MVC, NAnt and MSBuild scripts including comprehensive cross-language functionality, ReSharper will help any Visual Studio user write better code, easily examine and refactor existing code bases.
You can spend less time on routine, repetitive manual work and instead focus on the task at hand. A robust set of features for automatic error-checking and code correction cuts development time and increases your efficiency. You’ll find that ReSharper quickly pays back its cost in increased developer productivity and improved code quality. With ReSharper, .NET developers can truly experience what we mean when we say "Develop with pleasure!"
What’s New in ReSharper 2022.1
- New Extract Global Using and Inline Global Using refactorings
- Support for minimal APIs and convention-based routing
- Support for [EditorRequired] attribute for Blazor
- Navigation through inheritance hierarchy to Razor code
- Format selection, Cleanup selection, and Apply syntax style were combined into the Reformat and Cleanup item
- Support for musl-based Linux distributions in command-line tools
Continuous code quality analysis
ReSharper provides continuous code quality analysis for C#, VB.NET, XAML, XML, ASP.NET, ASP.NET MVC, JavaScript, TypeScript, HTML, and CSS, detecting errors and problems before you even compile, right in the code editor. ReSharper applies hundreds of code inspections to your code, so you can instantly see whether your current file or even your whole solution contains any errors or problems. It provides quick-fixes for most errors and other detected code issues, helping you improve code instantly.

Project dependency analysis
Invaluable for large solutions, ReSharper can build project hierarchies and visualize project dependency graph, which you can save and compare with new solution states at various stages, all without compiling anything. Right from the project hierarchy or visual dependency graph, you can invoke navigation actions and refactorings.

Advanced coding assistance
ReSharper offers a number of ways for streamlining common coding tasks to increase your productivity and save your time. It extends and improves native Visual Studio IntelliSense, enables you to view documentation for types and their members right in the editor, provides quick code transformations using context actions, and a lot more.

Instant code navigation
ReSharper’s navigation features help you instantly traverse your entire solution. You can jump to any file, type, or member in your code base in no time. No need to remember exact names: ReSharper understands lower camel case and wildcards in your input and sorts the results by relevance. All possible destinations including recent edits, related files or library types are at your fingertips.

From a specific symbol, you can navigate to its usages, base and derived symbols or implementations, highlight usages in the editor, view the inheritance hierarchy in a dedicated window, and more.
If necessary, you can dig beyond the source code of your solution — ReSharper will bring the referenced library code from symbol servers or decompile it right in the editor. The integrated decompiler lets you open compiled libraries from .dll or .exe files and study their source and IL code.

Solution-wide refactorings
ReSharper’s set of refactorings enhances the basic facilities provided in Visual Studio in terms of number, usability and scope of application. Change Signature, Convert Method to Property, Extract Style/Resource, Move to Another File, Safe Delete, Transform Parameters — to name just a few of 50+ ReSharper’s refactorings.
Each of the refactorings analyzes the entire scope of the code where it is applied (which can be as wide as your whole solution), including cross-language code, and uses this insight to update the code structure in the most intelligent way possible.
All ReSharper’s refactorings work in C#, and the vast majority are also available in VB.NET, some in JavaScript, XAML, HTML, ASP.NET, Razor, CSS, Resx, and build scripts (MSBuild and NAnt). Refactorings are supplemented by hundreds of context actions that automate restructuring and rewriting code in numerous ways.

Code generation to handle boilerplate code
Code generation helps create properties, override members, implement formatting and equality check methods. If required members are missing, the generation actions appear in the action list for the problematic type. Even more, you can use a method/function, property, local or field variable or even a class before it’s been declared: ReSharper will suggest quick-fixes for generating the corresponding symbol based on the usage.

Extensible code templates
Another helpful option for dealing with repetitive code is code templates. Live templates, a more intelligent version of Visual Studio’s code snippets, allow inserting code blocks based on context. Surround templates work the same way, letting you enclose the existing code in a specific block. File templates help create new files or file sets with predefined content without leaving the editor. ReSharper includes plenty of predefined templates of all types, which cover most frequently used code constructs for all supported languages. If you need to add your own templates to the existing set, manage or share them, ReSharper makes it easy with the dedicated template editor and template explorer.

One more typing-booster feature is postfix templates, which let you transform expressions that you have already typed without jumping backwards — just type a dot after an expression and pick a template from the completion list.

Code formatting and ordering
ReSharper’s Code Cleanup is an extensive feature set that combines code formatting with removal of redundant code and applying team coding conventions. With Code Cleanup, you can not only reformat code but also remove code redundancies, reorder type members, migrate to recent versions of C#, and perform a lot more tasks, all with a single shortcut. Two default profiles — Full Cleanup and Reformat Code — can be complemented by your custom task-specific profiles. All relevant settings are easily shared with the team. ReSharper can also pick up code style settings from EditorConfig and StyleCop config files.

Debugging assistance and breakpoints navigation
ReSharper streamlines your debugging experience by showing you values of local variables, current line expressions, and function returns right in the editor, next to the corresponding code lines. It also provides an improved replacement for Visual Studio DataTips, which are searchable and allow you to customize the presentation of objects.

With ReSharper, you can search for breakpoints by their code from a pop-up or from the R# Breakpoints window, which also lets you group breakpoints by file/folder/project/type/member, preview the related code, and export breakpoints from the whole solution.
On top of that, ReSharper helps you debug any external modules, even those that do not have debug information (PDB).
Painless maintenance of localizable resources
ReSharper considerably simplifies working with localizable resources by providing a full stack of features for .resx files and resource usages in C# and VB.NET code, as well as in ASP.NET and XAML markup. Dedicated features include Move String to Resource, Find Usages of Resource and more navigation actions. Combined with refactoring support, inspections and fixes, you get a convenient internationalization tool that also saves you a lot of time compared to manual internationalization.

Manage, run and debug unit tests in Visual Studio
ReSharper automatically detects xUnit, NUnit, MSTest, QUnit, and Jasmine unit tests in your projects. Other unit testing frameworks such as MSpec are supported via ReSharper extensions. ReSharper runs unit tests in the Unit Test Sessions window, which is designed to help you run any number of sessions, either independently of each other or simultaneously. Unit test sessions can be composed of any combination of tests.

ReSharper extensions
ReSharper extensions, which include full-fledged plug-ins, sets of templates, SSR patterns, and more, are extremely easy to discover, install, and update. Among the most popular extensions are Unity Support for ReSharper, Cyclomatic complexity calculator, and many others.

To get the full story on ReSharper’s feature set, please visit the ReSharper Features page.