ReSharper 3.0 Plugin Development

Skip to end of metadata
Go to start of metadata

This section covers the issues of plugin development targeting the 3.0-family versions of R#. For other versions, see the parent page.

Versions

ReSharper Versions and Binary Compatibility

The ReSharper 3.0 family has multiple public releases, including R# 3.0, 3.0.1, 3.0.2, and 3.0.3. Generally, their assemblies are binary incompatible, so the same build of a plugin can only run under the specific R# version it was built against.

Starting with R# 3.0.2, the binary API compatibility and assembly policies for strongname assemblies guarantee that the same plugin built against R# 3.0.2 DLLs will run with R# 3.0.3 and future R# releases.

The DLL versions of R# assemblies use only major and minor components of the marketing version (eg 3.0 out of 3.0.2), the build and revision components are assigned by the build system. The build component is guaranteed to be higher for subsequent releases of the same family.

Note: If your plugin uses the R# API to add Visual Studio menus, it should not target R# 3.0.2 because it has a critical bug in the actions subsystem. Building against 3.0.3 DLLs will ensure compatibility with future versions and prevent the plugin from running under 3.0.2.

Visual Studio Versions

Officially, R# 3.0 supports only Visual Studio v8.0 "Whidbey 2005", but there are also Visual Studio v9.0 "Orcas 2008" installers that have an experimental status. The plugins should be targeting both versions as well, as demonstrated in the PowerToys samples pack.

Documentation

(warning) The ReSharper Public API documentation and best practices coming soon. See the v2.5 section.

Samples

PowerToys are sample R# plugins that show how to use various techniques together. Their source code can be used as a quickstart for developing a complete R# plugin with an installer.

Some of the PowerToys are pure samples demonstrating the use of basic components. Others are so complex that they require good knowledge of ReSharper OpenAPI to understand the source code, but the things they do are useful enough to make them worth installing just to add functionality to ReSharper.

PowerToys Pack

The PowerToys Pack installation includes all of the PowerToys in the binary form, along with the complete source code and the installer build infrastructure.

Download:

Simple PowerToys

Real-Life PowerToys

  • Explore Type Interface
    Opens type in a tool window with public/protected/internal members displayed, sorted/grouped by kind. Members having associated types can be expanded further.
    Binaries: VS 9.0 | VS 8.0

  • Find Text
    Searches text in solution similar to Visual Studio "Find in files", but results are presented in ReSharper Find Results View.
    Binaries: VS 9.0 | VS 8.0

  • No labels