CHAPTER 10
At this point, you might be wondering just how we could possibly extend something that already has so much functionality in it, that it's just not possible to extend it any further. I had pretty much the same thoughts when I found out that it was also possible, but you soon realize that there are great reasons for being able to.
R# can be extended in one of two primary ways. The first is via its own internal extensions gallery. In much the same way that NuGet has revolutionized Visual Studio development, the R# extensions gallery has also opened the door and transformed R# from a humble plug-in to a first-class extension tools platform.
If you go to RESHARPER > Extension Manager on the main menu, you should see something like this:

It's purposely designed with the same look and feel as the NuGet GUI so that developers will instantly know what they are doing, and how to find an extension that will help.
As good as the core R# product is, there will always be extended functionality that end-users will want; the Extension gallery provides a mechanism for third parties to provide that extensibility.
By default, as you can see in Figure 179, we have NuGet support and R# External Annotations loaded. The External Annotations are added extras allowing R# to work with some of the more popular third-party libraries that get used in most .NET projects, as well as some of the extended .NET functionality that often doesn't get the extent of coverage that other parts of the framework do.
The second means of extending R# is through the use of the free SDK that JetBrains provides as a download from their website.
Just below the main download, you'll see Related Downloads; one of these will be the SDK, allowing you to write your own third party add-ons to be used directly within your installation.

An in-depth description of how to use the SDK to create your own add-ons is far beyond the scope of this book, but there are some good samples included, and the documentation will easily get you started with the tools. Beyond that, there's a massive community of dedicated R# users out on the internet, many of whom are more than willing to help with questions and advice.