Before we dive into the API, let’s briefly discuss the tools you need to actually developer R# plug-ins. Basically, you need the following:
- Visual Studio is a fairly obvious requirement, though strictly speaking the plug-ins themselves can be developed using any IDE that supports CLR languages.
- ReSharper is required only for debugging --- a checked build is available for your convenience. If you are using the SDK, you do not have to have ReSharper on your machine. Of course, this implies that you won’t be able to check the results of your work. Naturally, the versions of the ReSharper installation and the SDK should match.
- Your favourite programming language --- all the examples given in the SDK use C#, and the SDK itself comes with C# and VB.NET templates, but you can use any .NET-compatible language (F#, C++/CLI, etc.) to develop ReSharper plugins.
- ReSharper SDK is more or less essential for fully productive plugin development. The SDK comes with things that you won’t find in the standard R# distribution, such as PDBs, test assembies, VS templates and a large number of samples. In addition, the SDK comes with tools for supporting new language development, compilation of image resources in ReSharper-friendly format, and a lot more.
Note on .Net Framework Version
On a clean Windows machine, Visual Studio comes with .NET Framework 4.0. While you can use .NET 4.0 to develop ReSharper plugins, those plugins would only be usable with Visual Studio 2010 and later. If you intend your plug-ins to be usable with earlier versions of Visual Studio (2005, 2008), you should download and install .Net Framework 3.5 and use it as the target framework for your plug-in projects.
Please note that samples that come with the SDK target .Net 3.5, and in the absence of this framework, VS2010 will offer to retarget your assemblies to .NET 4.0. If you agree, your plug-in will be incompatible with earlier versions of Visual Studio.