Creating A Plugin
Creating new ReSharper and Rider plugin projects is performed using the dedicated
dotnet new template. The generator creates all the necessary project files based on a few template inputs.
Create ReSharper & Rider Plugins
Launch the New Project wizard via the action and provide the following information:
Download the plugin template from the GitHub Release page.
Install the plugin template by calling:
dotnet new --install JetBrains.ReSharper.SamplePlugin.*.nupkg
Unpack the template with your preferred plugin name:
dotnet new resharper-rider-plugin --name MyPlugin
When extracting the template, for instance with
--name MyPlugin, it will create the following directory content:
The gradlew and gradlew.bat files to bootstrap running Gradle on Windows, macOS, and Linux. These will also automatically install the required Amazon Corretto 11 SDK into the build/gradle-jvm directory.
The build.gradle file to build and deploy the plugin for ReSharper and Rider.
The buildPlugin.ps1 and publishPlugin.ps1 files to build and deploy only the ReSharper plugin.
The gradle.properties, settings.ps1, plugin.xml, and Plugin.props files, containing information about plugin metadata (id, description, authors), dependency versions (ReSharper/ Rider SDK), and paths to solution and project files.
The Run/debug configurations for Rider/IntelliJ IDEA (.run directory) and the runVisualStudio.ps1 for PowerShell (
--resharper-onlytemplate extraction) to launch the plugin in an experimental instance of Rider or Visual Studio with ReSharper.
The src/dotnet directory with basic project files for ReSharper and Rider including a test project. The Directory.Build.props defines all common NuGet references for both.
The README.md and CHANGELOG.md files for documentation about the plugin. The first section of the CHANGELOG.md is automatically included in the plugin metadata. The README.md has predefined Shields.IO badges with
RESHARPER_PLUGIN_IDas placeholders that can be updated after the first deployment.
The .github/workflow directory (requires
--github-actionsduring template extraction) with predefined workflows for a continuous build (including
Test) and a deployment build.