ReSharper Screenshots

<strong>About ReSharper</strong><br /><br />

Code Cleanup

You can not only reformat code but also remove code redundancies, reorder type members, migrate to C# 3.0, and perform a lot more tasks, all with one shortcut.
<strong>Code Cleanup</strong><br /><em>You can not only reformat code but also remove code redundancies, reorder type members, migrate to C# 3.0, and perform a lot more tasks, all with one shortcut. 
</em><br /><br />

Unit Tests

ReSharper recognizes NUnit tests and lets you run or debug them right in Visual Studio. ReSharper provides a Unit Test Explorer to run and manage unit tests, and enables profiling of unit tests with dotTrace Profiler.
<strong>Unit Tests</strong><br /><em>ReSharper recognizes NUnit tests and lets you run or debug them right in Visual Studio. ReSharper provides a Unit Test Explorer to run and manage unit tests, and enables profiling of unit tests with dotTrace Profiler.
</em><br /><br />

Code Analysis

Results of code analysis are presented using a number of concepts: Errors. Errors have the highest priority of all - they prevent your code from compiling. Warnings. ReSharper provides you with warnings that don't prevent your code from compiling but may nevertheless represent serious coding inefficiencies. Suggestions. Code suggestions provide insights into code structure, drawing your attention to things that aren't necessarily bad or wrong, but probably useful to know. Hints. Unlike errors, warnings and suggestions, hints are not taken into account when you navigate to next/previous highlights, not shown in the Marker Bar and therefore do not influence the color of the Status Indicator.
<strong>Code Analysis</strong><br /><em>Results of code analysis are presented using a number of concepts: Errors. Errors have the highest priority of all - they prevent your code from compiling. Warnings. ReSharper provides you with warnings that don't prevent your code from compiling but may nevertheless represent serious coding inefficiencies. Suggestions. Code suggestions provide insights into code structure, drawing your attention to things that aren't necessarily bad or wrong, but probably useful to know. Hints. Unlike errors, warnings and suggestions, hints are not taken into account when you navigate to next/previous highlights, not shown in the Marker Bar and therefore do not influence the color of the Status Indicator.</em><br /><br />

ReSharper Options

ReSharper adds its own language-specific settings and keyboard shortcuts, which you can customize in the Visual Studio Options dialog box (Tools | Options). In addition to Visual Studio settings, you can fine-tune your development environment using the ReSharper Options dialog box (ReSharper | Options). It provides a wide selection of settings, from choosing between two alternative sets of symbol icons to advanced editing behaviors, context actions, unit testing, and more.
<strong>ReSharper Options</strong><br /><em>ReSharper adds its own language-specific settings and keyboard shortcuts, which you can customize in the Visual Studio Options dialog box (Tools | Options). In addition to Visual Studio settings, you can fine-tune your development environment using the ReSharper Options dialog box (ReSharper | Options). It provides a wide selection of settings, from choosing between two alternative sets of symbol icons to advanced editing behaviors, context actions, unit testing, and more.
</em><br /><br />

Safe Delete

The Safe Delete refactoring helps you safely delete a symbol if no occurrences of this symbol are found in the solution. ReSharper performs the necessary verification and validation to make sure the symbol can indeed be deleted without altering the code. The symbol can be a type, a method parameter or a type member.
<strong>Safe Delete </strong><br /><em>The Safe Delete refactoring helps you safely delete a symbol if no occurrences of this symbol are found in the solution. ReSharper performs the necessary verification and validation to make sure the symbol can indeed be deleted without altering the code. The symbol can be a type, a method parameter or a type member.</em><br /><br />

All Code Issues in a Solution Folder

As part of code review, ReSharper can display all code issues that it detects in a certain folder, project, or even in the entire solution. You can then either fix detected issues yourself or share ReSharper inspection results with relevant developers.
<strong>All Code Issues in a Solution Folder</strong><br /><em>As part of code review, ReSharper can display all code issues that it detects in a certain folder, project, or even in the entire solution. You can then either fix detected issues yourself or share ReSharper inspection results with relevant developers.</em><br /><br />

Inappropriate Static Member Access

ReSharper detects access to a static member of a type via its derived type and suggests using base class qualifier instead.
<strong>Inappropriate Static Member Access</strong><br /><em>ReSharper detects access to a static member of a type via its derived type and suggests using base class qualifier instead.</em><br /><br />

Inconsistent Method Naming

ReSharper detects that a method name doesn't respect accepted naming conventions and suggests renaming it to use UpperCamelCase.
<strong>Inconsistent Method Naming</strong><br /><em>ReSharper detects that a method name doesn't respect accepted naming conventions and suggests renaming it to use UpperCamelCase.</em><br /><br />

Parameter Type too Specific

ReSharper detects that a parameter could be of a more generic type and suggests changing it to IEnumerable<T>.

<strong>Parameter Type too Specific</strong><br /><em><p>ReSharper detects that a parameter could be of a more generic type and suggests changing it to IEnumerable&lt;T&gt;.</p>
</em><br /><br />

Use LINQ Instead of a Loop

ReSharper detects a foreach loop that can be converted into a LINQ query and suggests to do so for the sake of code compactness and readability.
<strong>Use LINQ Instead of a Loop</strong><br /><em>ReSharper detects a foreach loop that can be converted into a LINQ query and suggests to do so for the sake of code compactness and readability.</em><br /><br />

Redundant Register Directive

ReSharper detects that a directive registering a user control in an ASP.NET markup file is redundant and suggests removing it, as well as any other unused directives in that file.
<strong>Redundant Register Directive</strong><br /><em>ReSharper detects that a directive registering a user control in an ASP.NET markup file is redundant and suggests removing it, as well as any other unused directives in that file.</em><br /><br />

Structural Search and Replace

Even if ReSharper doesn't detect code that you know is wrong, you can write a search pattern describing the code smell that you want to find, and a replace pattern that defines how to improve upon that code smell. Essentially, you're writing your own code inspections and quick-fixes.
<strong>Structural Search and Replace</strong><br /><em>Even if ReSharper doesn't detect code that you know is wrong, you can write a search pattern describing the code smell that you want to find, and a replace pattern that defines how to improve upon that code smell. Essentially, you're writing your own code inspections and quick-fixes.</em><br /><br />

Creating Code from Usage

When ReSharper detects code that it can't find a matching declaration for, it offers multiple ways to create the declaration. Depending on the context, suggestions may include creating a field, parameter, class, interface, and other language entities.
<strong>Creating Code from Usage</strong><br /><em>When ReSharper detects code that it can't find a matching declaration for, it offers multiple ways to create the declaration. Depending on the context, suggestions may include creating a field, parameter, class, interface, and other language entities.</em><br /><br />

ReSharper Works Smoothly in VS

All ReSharper functionality is available in Visual Studio.

<strong>ReSharper Works Smoothly in VS</strong><br /><em><p>All ReSharper functionality is available in Visual Studio.</p>
</em><br /><br />

ReSharper

All ReSharper functionality is available in Visual Studio. Specific for that version of VS is the out-of-the-box support for both Light and Dark color themes.

<strong>ReSharper</strong><br /><em><p>All ReSharper functionality is available in Visual Studio. Specific for that version of VS is the out-of-the-box support for both Light and Dark color themes.</p>
</em><br /><br />

Support for Quick Launch Menu

All ReSharper commands can be found and invoked via the new Quick Launch menu.
<strong>Support for Quick Launch Menu</strong><br /><em>All ReSharper commands can be found and invoked via the new Quick Launch menu.</em><br /><br />

Solution Explorer Awareness

ReSharper commands are available on all nodes of Solution Explorer, including the newly introduced file member nodes.
<strong>Solution Explorer Awareness</strong><br /><em>ReSharper commands are available on all nodes of Solution Explorer, including the newly introduced file member nodes.</em><br /><br />

Architecture Explorer Support

ReSharper 7 integrates into Visual Studio 2012 Architecture Explorer, exposing its refactorings, navigation actions and more commands right from architecture entries.
<strong>Architecture Explorer Support</strong><br /><em>ReSharper 7 integrates into Visual Studio 2012 Architecture Explorer, exposing its refactorings, navigation actions and more commands right from architecture entries.</em><br /><br />

Dependency Graph Support

As well as supporting the Architecture Explorer in Visual Studio 2012 Ultimate Edition, we also provide access to ReSharper functionality from its Dependency Graph.
<strong>Dependency Graph Support</strong><br /><em>As well as supporting the Architecture Explorer in Visual Studio 2012 Ultimate Edition, we also provide access to ReSharper functionality from its Dependency Graph.</em><br /><br />

Go to Symbol

You can navigate to any symbol in a solution by name. CamelHumps support lets you specify symbols using abbreviations (for example, ap instead of AddProduct), and for more precise filtering, you can specify parts of a path to the symbol or a namespace that it belongs to.
<strong>Go to Symbol</strong><br /><em>You can navigate to any symbol in a solution by name. CamelHumps support lets you specify symbols using abbreviations (for example, ap instead of AddProduct), and for more precise filtering, you can specify parts of a path to the symbol or a namespace that it belongs to.</em><br /><br />

Go to Implementation

Jump from a base type or member to any of its end implementations, bypassing intermediate steps in the inheritance chain.
<strong>Go to Implementation</strong><br /><em>Jump from a base type or member to any of its end implementations, bypassing intermediate steps in the inheritance chain.</em><br /><br />

To-Do Explorer

ReSharper can show and group all to-do items in your code base, helping you navigate directly to each of them.
<strong>To-Do Explorer</strong><br /><em>ReSharper can show and group all to-do items in your code base, helping you navigate directly to each of them.</em><br /><br />

Navigate to Derived Symbols

Jump to a type to any of its inheritors, or from a type member to any members overriding or implementing it in derived types.
<strong>Navigate to Derived Symbols</strong><br /><em>Jump to a type to any of its inheritors, or from a type member to any members overriding or implementing it in derived types.</em><br /><br />

Find Usages

ReSharper's advanced Find Usages feature seeks for symbol occurrences in code, comments, and related symbols. Results are presented in a feature-rich tool window with grouping options, filtering by type of usage, and code preview.
<strong>Find Usages</strong><br /><em>ReSharper's advanced Find Usages feature seeks for symbol occurrences in code, comments, and related symbols. Results are presented in a feature-rich tool window with grouping options, filtering by type of usage, and code preview.</em><br /><br />

Go to File Member

Jump to a specific member in the current file or its related files (for example, in another type part.)
<strong>Go to File Member</strong><br /><em>Jump to a specific member in the current file or its related files (for example, in another type part.)</em><br /><br />

Highlight Usages

Highlight usages of symbol in the current file. Read and write usages are highlighted in different colors, and you can quickly navigate between usages.
<strong>Highlight Usages</strong><br /><em>Highlight usages of symbol in the current file. Read and write usages are highlighted in different colors, and you can quickly navigate between usages.</em><br /><br />

Go to Recent Files

If you're about to get back to a file that you've recently closed, Recent Files is the shortcut that's going to get you back quickly.
<strong>Go to Recent Files</strong><br /><em>If you're about to get back to a file that you've recently closed, Recent Files is the shortcut that's going to get you back quickly.</em><br /><br />

Change Signature

This refactoring modifies the set of parameters or return type of a method, making sure that all calls, implementations and overrides are updated accordingly.
<strong>Change Signature</strong><br /><em>This refactoring modifies the set of parameters or return type of a method, making sure that all calls, implementations and overrides are updated accordingly.</em><br /><br />

Move Types into Matching Files

This refactoring analyzes all types found in a given scope and makes sure that all of them are placed in dedicated files matching their names. It can be applied to a file, folder, project, solution, or a custom selection of files.
<strong>Move Types into Matching Files</strong><br /><em>This refactoring analyzes all types found in a given scope and makes sure that all of them are placed in dedicated files matching their names. It can be applied to a file, folder, project, solution, or a custom selection of files.</em><br /><br />

Rename on Steroids

ReSharper's implementation of Rename refactoring works across all supported languages, takes into account usages in comments and string literals.
<strong>Rename on Steroids</strong><br /><em>ReSharper's implementation of Rename refactoring works across all supported languages, takes into account usages in comments and string literals.</em><br /><br />

Invoking Extract Class

This new refactoring helps break up a complex class into several simple classes, thus respecting the principle of single responsibility and reducing code complexity.
<strong>Invoking Extract Class</strong><br /><em>This new refactoring helps break up a complex class into several simple classes, thus respecting the principle of single responsibility and reducing code complexity.</em><br /><br />

Setting up Extract Class

Extract Class wizard helps pick members to extract to a separate class, warns of any found dependencies and conflicts.
<strong>Setting up Extract Class</strong><br /><em>Extract Class wizard helps pick members to extract to a separate class, warns of any found dependencies and conflicts.</em><br /><br />

Adjust Namespaces

This refactoring helps you synchronize namespaces to folder structure in any scope, which can be as large as the entire solution. If in a certain code file a namespace doesn't correspond to the location of the file in project structure, the namespace is renamed to comply with file location.
<strong>Adjust Namespaces</strong><br /><em>This refactoring helps you synchronize namespaces to folder structure in any scope, which can be as large as the entire solution. If in a certain code file a namespace doesn't correspond to the location of the file in project structure, the namespace is renamed to comply with file location.</em><br /><br />

Extract Class from Parameters

This refactoring helps streamline your APIs: it creates a new class or struct and converts selected parameters of a method into encapsulated fields of the newly created type. Usages of parameters are converted to usages of properties of the created type.
<strong>Extract Class from Parameters</strong><br /><em>This refactoring helps streamline your APIs: it creates a new class or struct and converts selected parameters of a method into encapsulated fields of the newly created type. Usages of parameters are converted to usages of properties of the created type.</em><br /><br />

Generate Equality Members

Generate Equality Members wizard offers different ways of generating a working implementation of a type equality check.
<strong>Generate Equality Members</strong><br /><em>Generate Equality Members wizard offers different ways of generating a working implementation of a type equality check.</em><br /><br />

Generate Content for Placeholders

In ASP.NET, if there are content placeholders in your master page, ReSharper helps you generate corresponding content tags in markup pages referencing that master page.
<strong>Generate Content for Placeholders</strong><br /><em>In ASP.NET, if there are content placeholders in your master page, ReSharper helps you generate corresponding content tags in markup pages referencing that master page.</em><br /><br />

Creating Declarations from Usage

If ReSharper encounters a code symbol that it's unable to resolve, it suggests a set of context-driven options to generate its declaration.
<strong>Creating Declarations from Usage</strong><br /><em>If ReSharper encounters a code symbol that it's unable to resolve, it suggests a set of context-driven options to generate its declaration.</em><br /><br />

Generate Files

If the Generate menu is invoked from Solution Explorer, ReSharper offers a pack of options to generate new files: web forms, controls or master pages in web projects; classes, interfaces, structs and enumerations in all projects.
<strong>Generate Files</strong><br /><em>If the Generate menu is invoked from Solution Explorer, ReSharper offers a pack of options to generate new files: web forms, controls or master pages in web projects; classes, interfaces, structs and enumerations in all projects.</em><br /><br />

Surround Templates

If you've selected a piece of code in the code editor, ReSharper helps you surround the selection with braces, condition clauses or other relevant code defined as surround templates. Surround templates are fully customizable to adopt to your specific needs.
<strong>Surround Templates</strong><br /><em>If you've selected a piece of code in the code editor, ReSharper helps you surround the selection with braces, condition clauses or other relevant code defined as surround templates. Surround templates are fully customizable to adopt to your specific needs.</em><br /><br />

Live Templates

Live templates are ReSharper's more intelligent version of Visual Studio's code snippets. ReSharper can predict from the context which variables, fields, and types can be used in corresponding templates.
<strong>Live Templates</strong><br /><em>Live templates are ReSharper's more intelligent version of Visual Studio's code snippets. ReSharper can predict from the context which variables, fields, and types can be used in corresponding templates.</em><br /><br />

Creating Custom Live Templates

Live templates are perfectly customizable. If you're not happy with the predefined set of live templates that comes bundled with ReSharper, you can create your own templates or modify the default ones.
<strong>Creating Custom Live Templates</strong><br /><em>Live templates are perfectly customizable. If you're not happy with the predefined set of live templates that comes bundled with ReSharper, you can create your own templates or modify the default ones.</em><br /><br />

Code Cleanup Window

Code Cleanup brings together code formatting and rearranging, migration to newer code constructs, optimizing import directives and more routine cleanup operations.
<strong>Code Cleanup Window</strong><br /><em>Code Cleanup brings together code formatting and rearranging, migration to newer code constructs, optimizing import directives and more routine cleanup operations.</em><br /><br />

Configuring Code Cleanup

You can configure code cleanup profiles to reach different goals depending on your team coding standards, project specifics, and technology that is being used.
<strong>Configuring Code Cleanup</strong><br /><em>You can configure code cleanup profiles to reach different goals depending on your team coding standards, project specifics, and technology that is being used.</em><br /><br />

Configuring Language Usage Options

Has your team come to agreement on whether to use implicit type qualifiers? Set up a team-wide code cleanup preference accordingly and let ReSharper take care of enforcing it.
<strong>Configuring Language Usage Options</strong><br /><em>Has your team come to agreement on whether to use implicit type qualifiers? Set up a team-wide code cleanup preference accordingly and let ReSharper take care of enforcing it.</em><br /><br />

Cleaning up a Solution Folder

Code Cleanup can be invoked in any scope, be it a code block, file, folder, project, solution, or a custom scope.
<strong>Cleaning up a Solution Folder</strong><br /><em>Code Cleanup can be invoked in any scope, be it a code block, file, folder, project, solution, or a custom scope.</em><br /><br />

Removing Unused References

ReSharper analyzes references in all projects and suggests which of them can be safely removed.
<strong>Removing Unused References</strong><br /><em>ReSharper analyzes references in all projects and suggests which of them can be safely removed.</em><br /><br />

Analyzing References

Before removing unused references, you can review all references in a project and see how they are used (or not used.)
<strong>Analyzing References</strong><br /><em>Before removing unused references, you can review all references in a project and see how they are used (or not used.)</em><br /><br />

Find Usages of Resource Entries

ReSharper helps you search for occurrences of a resource entry in all file types and contexts. As soon as you have search results at hand, group them and preview as you see fit.
<strong>Find Usages of Resource Entries</strong><br /><em>ReSharper helps you search for occurrences of a resource entry in all file types and contexts. As soon as you have search results at hand, group them and preview as you see fit.</em><br /><br />

IntelliSense for Resource Names

ReSharper shows completion lists suggesting resource names. Completion supports lowerCamelCase, letting you use abbreviations instead of full words.
<strong>IntelliSense for Resource Names</strong><br /><em>ReSharper shows completion lists suggesting resource names. Completion supports lowerCamelCase, letting you use abbreviations instead of full words.</em><br /><br />

Quick Info for Resource Entries

ReSharper's Quick Documentation feature works for resource names, giving you an overview of resource values in all cultures defined in your solution.
<strong>Quick Info for Resource Entries</strong><br /><em>ReSharper's Quick Documentation feature works for resource names, giving you an overview of resource values in all cultures defined in your solution.</em><br /><br />

Inheritance Information for Resources

Special gutter marks in the code editor give you a quick glance of cultures in which the current resource value is overridden.
<strong>Inheritance Information for Resources</strong><br /><em>Special gutter marks in the code editor give you a quick glance of cultures in which the current resource value is overridden.</em><br /><br />

Navigation to Members in Resource Files

ReSharper's Go to File Member is available in .resx files, letting you jump to a specific resource entry in no time.
<strong>Navigation to Members in Resource Files</strong><br /><em>ReSharper's Go to File Member is available in .resx files, letting you jump to a specific resource entry in no time.</em><br /><br />

Navigate to Resource Implementations

ReSharper's context-sensitive navigation takes you from a resource declaration or usage to any of its overriding resource names in other cultures.
<strong>Navigate to Resource Implementations</strong><br /><em>ReSharper's context-sensitive navigation takes you from a resource declaration or usage to any of its overriding resource names in other cultures.</em><br /><br />

Refactoring Resource Entries

ReSharper provides several refactorings for resource entries. For example, it helps you quickly move a resource entry to a different resource file and auto-update its usages along the way.
<strong>Refactoring Resource Entries</strong><br /><em>ReSharper provides several refactorings for resource entries. For example, it helps you quickly move a resource entry to a different resource file and auto-update its usages along the way.</em><br /><br />

Unit Test Sessions

Organize unit tests into multiple distinct test sessions and run them independently. For failed tests, ReSharper displays stack traces and provides navigation to involved lines of code.
<strong>Unit Test Sessions</strong><br /><em>Organize unit tests into multiple distinct test sessions and run them independently. For failed tests, ReSharper displays stack traces and provides navigation to involved lines of code.</em><br /><br />

Manage Tests from the Code Editor

ReSharper provides contextual commands to run, debug, or add a certain test or test fixture to a test session.
<strong>Manage Tests from the Code Editor</strong><br /><em>ReSharper provides contextual commands to run, debug, or add a certain test or test fixture to a test session.</em><br /><br />

Grouping Tests in a Session

You have multiple choices to group tests in a session the way you like. Grouping criteria include project structure, projects, namespaces, and categories.
<strong>Grouping Tests in a Session</strong><br /><em>You have multiple choices to group tests in a session the way you like. Grouping criteria include project structure, projects, namespaces, and categories.</em><br /><br />

Exporting Test Results

Results of a test session run can be exported to plain text, HTML or XML. Export data includes test names, run results, and error information in case of test failure.
<strong>Exporting Test Results</strong><br /><em>Results of a test session run can be exported to plain text, HTML or XML. Export data includes test names, run results, and error information in case of test failure.</em><br /><br />

Navigation to Tests

You can navigate from a test or a test fixture to Unit Test Explorer that shows all tests found in solution. From there, you can organize tests into sessions.
<strong>Navigation to Tests</strong><br /><em>You can navigate from a test or a test fixture to Unit Test Explorer that shows all tests found in solution. From there, you can organize tests into sessions.</em><br /><br />

WinRT-aware Code Completion

Code completion is provided in both code & XAML files. In XAML, ReSharper is aware of the new namespaces & URL formats, & is capable of offering context sensitive completion options.
<strong>WinRT-aware Code Completion</strong><br /><em>Code completion is provided in both code &amp; XAML files. In XAML, ReSharper is aware of the new namespaces &amp; URL formats, &amp; is capable of offering context sensitive completion options.</em><br /><br />

WinRT Code Inspections and Quick-Fixes

WinRT-specific code inspections and quick-fixes continue to provide developers with early warnings of potential problems in code and ways to solve them.
<strong>WinRT Code Inspections and Quick-Fixes</strong><br /><em>WinRT-specific code inspections and quick-fixes continue to provide developers with early warnings of potential problems in code and ways to solve them.</em><br /><br />

WinRT-aware Code Navigation

Contextual navigation lets you quickly move around your solution. This mechanism is acutely aware of WinRT-specific structures such as variant resource naming conventions.
<strong>WinRT-aware Code Navigation</strong><br /><em>Contextual navigation lets you quickly move around your solution. This mechanism is acutely aware of WinRT-specific structures such as variant resource naming conventions.</em><br /><br />

Removing Unused References

WinRT-aware reference optimization support is provided for C# and VB.NET projects.
<strong>Removing Unused References</strong><br /><em>WinRT-aware reference optimization support is provided for C# and VB.NET projects.</em><br /><br />

WinJS-enabled IntelliSense

Code completion is available for imported WinRT components invoked from JavaScript code - ReSharper even respects casing conventions!
<strong>WinJS-enabled IntelliSense</strong><br /><em>Code completion is available for imported WinRT components invoked from JavaScript code - ReSharper even respects casing conventions!</em><br /><br />

Find Usages Across Languages

Navigation and search functionality perfectly works across WinRT projects. For example, searching for uses of C#-based Person class will show you how it's used in a WinJS project.
<strong>Find Usages Across Languages</strong><br /><em>Navigation and search functionality perfectly works across WinRT projects. For example, searching for uses of C#-based Person class will show you how it's used in a WinJS project.</em><br /><br />