The ReSharper API
ReSharper provides Open API, which is the same API that has been used to create all the features of ReSharper.
Note
As we would like to introduce you to only some basic concepts related to creating plugins in this book, we will quickly describe only the most important ones.
From an architectural point of view, the ReSharper API is divided into the following three layers:
Platform
Program Structure Interface (PSI)
Features
When you are working on a plugin project, you can easily find the related assemblies based on their names, which are as follows:
JetBrains.Platform.ReSharper.*
JetBrains.ReSharper.Psi.*
JetBrains.ReSharper.Features.*
andJetBrains.ReSharper.Feature.Services.*
The hierarchy of these levels is presented in the following screenshot:
It is important to understand the responsibilities of these layers.
Platform
Platform is the first base layer, which allows you to work directly with the Visual Studio API.
The most important modules that you can find here are as follows...