title |
---|
WebStorm Plugin Development |
WebStorm is an IntelliJ Platform-based product.
Plugin projects for WebStorm can be developed using IntelliJ IDEA with the gradle-intellij-plugin
.
The configuration of WebStorm plugin projects follows the methods described in Configuring Plugin Projects using the IntelliJ IDEA Product Attribute and Configuring the plugin.xml File for PhpStorm.
The table below summarizes the gradle-intellij-plugin
attributes to set in the plugin project's build.gradle
file.
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 build.gradle
file for PhpStorm, see Configuring build.gradle using the IntelliJ IDEA Product Attribute.
gradle-intellij-plugin Attribute |
Attribute Value |
---|---|
intellij.type |
IU for IntelliJ IDEA Ultimate.( IC is incompatible with the required JavaScriptLanguage plugin. |
intellij.version |
192.7142.36 Set to the same BRANCH.BUILD as the WebStorm target version. |
intellij.plugins |
Dependency on the JavaScriptLanguage plugin. |
runIde.ideDirectory |
Path to locally installed target version of WebStorm. For example, for macOS:/Users/<user name>/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/192.7142.35/WebStorm.app/Contents |
The dependency on the WebStorm APIs must be declared in the plugin.xml
file.
As described in Modules Specific to Functionality table, the <depends>
tags must declare JavaScriptLanguage
.
Note that for WebStorm the plugin.xml file must also declare a dependency on com.intellij.modules.platform
because JavaScriptLanguage
is not recognized as a module.
Consequently, without the com.intellij.modules.platform
declaration the plugin is assumed to be a legacy plugin and will not load in WebStorm.
Use the Exploring APIs as a Consumer process to identify the libraries JavaScriptLanguage.jar
, and javascript-openapi.jar
.
Test your plugin with any version of WebStorm you wish to support.
When learning new plugin development it is helpful to have some representative projects for reference: