IntelliJ Platform Plugin SDK Help

PyCharm Plugin Development

PyCharm is an IntelliJ Platform-based product. Plugin projects for PyCharm can be developed using IntelliJ IDEA.

WebStorm Plugin Setup

Gradle Build Script

Define a dependency using pycharmCommunity() or pycharmProfessional(), 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 matching bundled PythonCore/Pythonid plugin (see Python Plugins below) must be added using the bundledPlugin() helper.

Minimum build.gradle.kts setup:

repositories { mavenCentral() intellijPlatform { defaultRepositories() } } dependencies { intellijPlatform { pycharmCommunity("<versionNumber>") bundledPlugin("PythonCore") } }

The configuration of PyCharm plugin projects follows the methods described in Configuring Plugin Projects using a Product-Specific Attribute, and Configuring the plugin.xml File. The table below summarizes the Gradle IntelliJ Plugin (1.x) attributes to set in the Gradle build script. Click on an entry in the table's Attribute column to go to the documentation about that attribute.

gradle-intellij-plugin Attribute

Attribute Value

intellij.type

PC for PyCharm Community Edition


PY for PyCharm Professional Edition

intellij.version

Set to the targeted PC or PY version.

intellij.plugins

See Python Plugins.

intellij.downloadSources

false is required because no public source code is available.

runIde.ideDir

Not needed; the Development Instance will automatically match intellij.type.

plugin.xml

The dependency on the PyCharm APIs must be declared in the plugin.xml file. As described in Configuring the plugin.xml File, the <depends> tag must declare com.intellij.modules.python.

Python Plugins

Plugin

Plugin ID

API

Python Community Edition

PythonCore

PyCharm Community Edition (PC)

Python

Pythonid

PyCharm Professional Edition (PY)

Python Plugins 2024.2

When using functionality from Pythonid, a dependency on both PythonCore and Pythonid is now required.

Sample Plugin

See the SDK code sample pycharm_basics for an example configuration. Note that this code sample must be imported into Gradle explicitly, as it is not included in the _gradleCompositeBuild.

Available PyCharm APIs

See IntelliJ Community Plugins Extension Point and Listener List for PyCharm Community.

Additional Articles and Resources

Open Source Plugins for PyCharm

When learning new development configurations, it is helpful to have some representative projects for reference:

Last modified: 28 October 2024