Home> Products> ReSharper> Features> New Features

What's New in ReSharper 3.0

ReSharper 3.0 has loads of new goodies for C# users and VB.NET developers alike including XML, XAML, and ASP.NET support.
If you develop specifically in either language click the links below to see what ReSharper has in store for you.

C# Features

ReSharper just made life easier for C# developers with even more productivity-enhancing features and unparalleled code quality tools.

See also General features »


Code Assistance, Navigation/Search and other productivity features

  • Navigation and Search:
    • "Go to symbol" — navigate to any symbol by its short name, with a single shortcut.
    • Go to next/prev error action
    • Command to locate current file in Solution Explorer
    • Find symbols referenced from type or type member
    • Find code dependent on referenced assembly (renamed feature) or on project (new feature)
    • Advanced Find Usages: new UI and ability to specify arbitrary base member to search for
    • Highlight usages of expression in file
    • Type hierarchy view enhancements
      • Two new view modes — show interface leaves, show concrete types
      • Members panel added
    • Filter occurrences of attributes by usage in [attribute]
  • Code completion:
    • Smart completion for type arguments
    • Smart completion for generic method arguments
    • Smart completion in catch clause for Exception parameter — give name to unnamed caught exception
  • Alt-Ins in Solution Explorer to create a new file from template
  • Automatic member reordering
  • Parameter information for named parameters in attributes
  • Advanced type choosing control in Refactoring UI
  • Mark quasi-implementations with italic font in "Go to base/derived"
  • Move statements in code blocks
  • Move parameters in method signature
  • Option to generate operators in "Generate Equals & GetHashCode"
  • "Generate delegating members" includes base as possible target (e.g. for publishing protected members of base type)
  • Noticeably improved stack trace explorer

to the top

C# Code Inspections

Code inspections are capable of detecting erroneous or suspicious code. A developer is however responsible for fixing it or not. You can find some examples on the dedicated C# code analysis page. The folowing inspections are available:

  • Check parameter name in ArgumentException family
  • Redundant interface specification in list of implemented interfaces
  • Redundant attribute parenthesis if empty argument list
  • Comparison of unconstrained generic value with null
  • Field could be made readonly
  • Redundant explicit delegate creation for method
  • Partial type with single part
  • Method return value is unused
  • Overriding obsolete member without specifying obsolete attribute
  • Assignment in condition
  • Parameter could be declared with base type
  • Conditional ternary expression could be re-written as coalescing expression
  • For statement condition is always true
  • Redundant unsafe context declaration
  • Analysis for namespace doesn't correspond to file location
  • Support compiler warning levels set in project properties
  • Support specific warning suppressed in project properties, including "member not documented"
  • Ability to specify custom formatting methods for analysis (like string.Format)

to the top

Context Actions

  • Extract anonymous method to method of the type
  • Inline method body as anonymous delegate
  • Replace ArrayList with List <T>
  • Convert catch(Exception) to catch and vice versa
  • Insert code to check if parameter is null and throw ArgumentNullException
  • Copy documentation comments from base
  • Create overload without parameter(s)
  • Initialize field from constructor parameter
  • Rename file to match type name
  • Move variable to outer scope
  • Add another accessor to property or event
  • Split string literal
  • Replace variable declared at outer scope with several variable declared in inner scopes, when they are independent
  • Surround string with string.Format()
  • Move member declaration(s) to another type part
  • Make abstract member virtual
  • Replace string checks with string.IsNullOrEmpty() method call
  • Override virtual member in derived type

to the top

Quick Fixes

  • Add event accessors if required by event declaration (e.g. it is explicit event implementation)
  • Add reference to module (e.g. when it is required by inheritance chains)
  • Add reference to module and import type from that module
  • Pull a local variable to a larger scope so that given unresolved symbol resolves to that variable
  • Merge conflicting local variables into a single one
  • Turn invalid embedded statement into an assignment
  • Replace delegate constructor call with the correct delegate
  • Remove redundant delegate constructor call
  • Remove postfix operator which value is unused
  • Remove unaccessed variable but leave and highlight values assigned to it
  • Correct types in different operator declarations
  • Create missing true/false operator
  • Remove duplicate interface in implements list
  • Remove redudant call to parameterless base constructor
  • Remove "partial" keyword on a class with single part
  • Fix constraints order in where clause
  • Add missing class, struct, new or type constraint
  • Convert struct into class when it does not suit type constraints or this is used as assignment target in it
  • Add default constructor if type constraints require it
  • Replace "null" with "default(...)"
  • Replace invalid multi-char character literal with string literal
  • Remove redudant parenthesis in parameterless attribute constructor call
  • Make field readonly
  • Add xml-documentation comments about an entity

ReSharper introduces another level of code analysis with code suggestions. Now it understands a number of things about code that aren't necessarily wrong or bad, just useful to know. For instance, you may be interested to know that "parameter can be declared with base type," meaning that your method uses the parameter as an instance of the base class. Based on that knowledge, you may want to change its type — or not, if that is by design.

to the top

Visual Basic .NET Features

Version 3.0 allows VB.NET developers to finally enjoy all the features that were previously available only to C# users. For instance:

See also General features »

Editor Enhancement

We've turned Visual Studio editor a lot more helpful and user-friendly for VB developers. ReSharper lets you do a whole lot more with simple code manipulation with features like Duplicate selection/line, Comment line/block, Extend/Shrink Selection, Next/Previous Member, Manual Member Reorder, Highlight Matching Brackets (see screenshot), Quotes Auto-insertion, Parameter Information (see screenshot), and Quick Documentation.

to the top

Code Completion

VB.NET code completion includes ReSharper's Smart Code Completion and Code Completion, which work the same as they do in C#. Smart Code Completion filters the list of methods and variables to match the expected type of an expression.

Type Name Completion, unlike basic completion (which is provided by Visual Studio and only completes types accessible at the current location), completes the names of types available in the current project, and automatically adds the appropriate Imports directives when necessary.

to the top

Refactorings

ReSharper's renowned code refactorings comes with automatic reference correction — now across VB and C# whenever possible. The following refactorings are ready to be used in Visual Basic .NET:

Rename Symbol

Change Method Signature

Inline Variable

Introduce Parameter

Move Static Members

Safe Delete

Move Type

Copy Type

Extract Method

Introduce Variable

Encapsulate Field

Extract type to a new file

Introduce Field

Move Type to Outer Scope

Make Method Static

Make Method Non-static

to the top

Code Changes

Generating code in Visual Basic code is cleverly streamlined with the help of Generate, Create from Usage, and Live Templates features.

You can instantly generate all these properties, members and methods:

Create methods, variables or properties from the usage of an undeclared identifier:

Live Templates let you type a short template abbreviation and expand it with the TAB key into a full block of code:

to the top

General Features and Improvements

ReSharper 3.0 covers a lot of new ground with its major support for VB.NET, XML and XAML, including indispensable cross-language functionality. C# code suggestions are another big improvement in working with code intelligently. New functionality available across the board also includes the new Unit Test Explorer, Go To Symbol navigation, To-do list, and a lot more. Learn more about these features with these quick links:

Cross-Language Functionality

For mixed C# and VB.NET projects, ReSharper helps you to keep all parts of code working together smoothly and to navigate around your code with ease. All navigation and search actions take both C# and VB.NET code into account. You can navigate to usages, declarations, inheritors, base types and more — across languages. Automated reference correction resulting from the use of refactorings, context actions or quick-fixes also covers both languages whenever possible.

to the top

XML and XAML Support

The much-anticipated support for XML and XAML is now available.

XML Features

ReSharper offers a number of time-saving XML features, including type completion; navigation to referenced types; highlighting, replacing and moving tags; navigating between tags and to opening/closing tags; useful code assistance (see screenshots below); and live templates support.

Context action in XML:

Various quick-fixes and context actions in XML:

Code completion in XML:

to the top

XAML Features

XAML features include XML editing in XAML code, all of ReSharper's standard code completion features, several refactorings (including Rename refactoring), and on-the-fly error, syntax and semantic analysis.

Smart Code Completion works really well in XAML resources:

Context actions let you easily manipulate and change XML code in XAML:

More Productivity Enhancers

We are still finding new things to improve in Visual Studio to help you become more productive. What is more, these features are available for all supported languages are and included in each of ReSharper 3.0 editions.

Go To Symbol

ReSharper's big family of navigation features welcomes its newest addition — the Go To Symbol command, allowing robust solution-wide search by name for any file member.

to the top

To-do List

The To-do list lets you keep track of your reminders right in Visual Studio. Yes, Visual Studio can do that, too, but our To-do list collects all To-do reminders in your solution — even those in closed files.

The To-do Explorer lets you browse To-do, Notes and Bugs and navigate to them with a simple double click.

to the top

Unit Test Explorer

Unit Test Explorer — yes, not Runner, Explorer — delivers unmatched flexibility in running and debugging unit tests.

to the top

New ReSharper Editions

Considering the different needs of our users, we offer three different editions of ReSharper:

  • ReSharper 3.0: Very simple — this includes all features for all supported languages and technologies, particularly the cross-language functionality between C# and VB.NET.
  • ReSharper 3.0 C# Edition: If you have no need for Visual Basic, you can save a buck and still work with C#, ASP.NET, XML, XAML, unit testing, build script files and the rest of the productivity features.
  • ReSharper 3.0 Visual Basic.NET Edition: If you do not work with C#, start enjoying ReSharper's brand new extensive VB capabilities and all the other functionality as well, excluding only the C# features.

to the top