RubyMine Plugin Development
RubyMine is an IntelliJ Platform-based product. Plugin projects for RubyMine can be developed using IntelliJ IDEA.
RubyMine Plugin Setup
Gradle Build Script
Define a dependency using rubymine()
, see Versions link on top of this page for all available versions. See Local IntelliJ Platform IDE Instance for using a local installation.
A dependency on the bundled org.jetbrains.plugins.ruby
plugin must be added using the bundledPlugin()
helper.
Minimum build.gradle.kts setup:
The configuration of RubyMine plugin projects follows the methods described in [Configuring Plugin Projects using the IntelliJ IDEA Product Attribute](dev_alternate_products.md#configuring-plugin-projects-using-the-intellij-idea-product-attribute), and [Configuring the plugin.xml File](dev_alternate_products.md#configuring-pluginxml).
The table below summarizes the Gradle IntelliJ Plugin (1.x) attributes to set in the Gradle build script for a RubyMine plugin project. Click on an entry in the table's Attribute column to go to the documentation about that attribute. To see how these attributes appear in a similar Gradle build script for PhpStorm, see Configuring Gradle Build Script Using the IntelliJ IDEA Product Attribute.
| Attribute Value |
---|---|
| |
Set to the same | |
See below for Ruby plugin version information. | |
Path to locally installed target version of RubyMine. For example, on macOS: /Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/RubyMine/ch-0/192.7142.37/RubyMine.app/Contents. |
The required org.jetbrains.plugins.ruby
plugin isn't compatible with IntelliJ IDEA Community edition but is compatible with IntelliJ IDEA Ultimate (IU
) edition. Product compatibility is determined from the Ruby plugin version page. The Ruby plugin isn't bundled with IU
, so the Ruby plugin version must be explicitly declared to support the target RubyMine (and IU
) BRANCH.BUILD version. The correct Ruby plugin version is also determined from the Ruby plugin version page.
plugin.xml
The dependency on the Ruby plugin APIs must be declared in the plugin.xml file. As described in Modules Specific to Functionality table, the <depends>
tags must contain com.intellij.modules.ruby
.
Available RubyMine APIs
Use the Exploring APIs as a Consumer process to identify the library ruby.jar. Test your plugin with any version of RubyMine you intend to support.
RubyMine Test Framework
To use existing test base classes, add TestFrameworkType.Plugin.Ruby
test-framework available from Plugin Test Frameworks.
Alternatively, specify com.jetbrains.intellij.idea:ruby-test-framework:$VERSION$
as testImplementation
dependency explicitly (see IntelliJ Platform Artifacts Repositories).
Open Source Plugins for RubyMine
When learning new APIs, it is helpful to have some representative projects for reference: