IntelliJ Platform Plugin SDK Help

DataGrip Plugin Development

Introduction

DataGrip is an IntelliJ Platform-based product. Plugin projects targeting DataGrip can be developed using IntelliJ IDEA with the gradle-intellij-plugin.

Configuring Plugin Projects Targeting DataGrip

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.

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 AttributeAttribute Value
intellij.typeIU for IntelliJ IDEA Ultimate.
(IC is incompatible with the required DatabaseTools plugin.)
intellij.version2019.3 Set to the same version as the DataGrip target version, as set by runIde.ideDirectory.
intellij.pluginsplugins 'DatabaseTools' Dependency on the bundled DatabaseTools plugin.
runIde.ideDirectoryPath to locally installed target version of DataGrip. For example, for macOS:
/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/datagrip/ch-0/193.5233.139/DataGrip.app/Contents.
runIde.jvmArgsjvmArgs '-Didea.platform.prefix=DataGrip'
Only required for gradle-intellij-plugin 0.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.

Available DataGrip APIs

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.

Last modified: 11 May 2021