title |
---|
DataGrip Plugin Development |
DataGrip is an IntelliJ Platform-based product.
Plugin projects targeting DataGrip can be developed using IntelliJ IDEA with the gradle-intellij-plugin
.
The configuration of DataGrip plugin projects follows the methods described in Configuring Plugin Projects using the IntelliJ IDEA Product Attribute, and Configuring the plugin.xml File.
Note DataGrip plugin development may require setting an additional Gradle attribute:
runIde.jvmArgs
. See table below.
The table below summarizes the gradle-intellij-plugin
attributes to set in the build.gradle
file:
gradle-intellij-plugin Attribute |
Attribute Value |
---|---|
intellij.type |
IU for IntelliJ IDEA Ultimate.( IC is incompatible with the required DatabaseTools plugin.) |
intellij.version |
2019.3 Set to the same version as the DataGrip target version, as set by runIde.ideaDirectory |
intellij.plugins |
plugins 'DatabaseTools' Dependency on the bundled DatabaseTools plugin. |
runIde.ideaDirectory |
Path to locally installed target version of DataGrip. For example, for macOS:/Users/<user name>/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents |
runIde.jvmArgs |
jvmArgs '-Didea.platform.prefix=DataGrip' Only required for gradle-intellij-plugin v0.4.16 or earlier. |
The additional attribute runIde.jvmArgs
is required for versions of the gradle-intellij-plugin
0.4.16 and earlier.
This attribute declares that Gradle should use the DataGrip platform to run/debug plugins in a development instance.
It is not required for building plugins and manually installing them in DataGrip.
Benign, but redundant attribute if used for later versions of the gradle-intellj-plugin
.
The dependency on the DataGrip APIs must be declared in the plugin.xml
file.
As described in Modules Specific to Functionality table, the <depends>
tags must declare com.intellij.database
.
Note that DataGrip plugins must also declare a dependency on com.intellij.modules.platform
because com.intellij.database
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 DataGrip.
Use the Exploring APIs as a Consumer process to identify the libraries in DatabaseTools
.
Test your plugin with any version of DataGrip you wish to support.