IntelliJ Plugin Development Notes
  • Plugin Development Notes for JetBrains IDEs
  • Project Setup
    • Target a Specific IDE
  • OpenAPI
    • Actions
      • DumbAwareAction
    • Options
      • SettingsEditor
  • UI
    • Navigation
    • Tool Window
    • Icons
    • Project Wizard
    • Internationalization
    • Status Bar
    • Layout Managers
    • Text
    • Dialogs
    • Services Tool Window
  • Common Patterns
    • PSI Facade
    • Smart Mode and Dumb Mode
    • Lazy
  • Official Documentation
    • IntelliJ Platform SDK DevGuide
    • IntelliJ SDK Platform Documentation (GitHub)
    • Design Guidelines
    • Getting Started With IntelliJ
    • Creating IntelliJ Platform SDK Code Samples
  • Example Code
    • IntelliJ IDEA - Community Edition (Upsource)
    • IntelliJ IDEA Community Edition (GitHub)
    • Code Samples from SDK Docs
    • Open Source IntelliJ Plugins
    • Gradle Plugin Examples
    • IntelliJ Platform Plugin Template
  • Community
    • JetBrains Platform Slack
    • JetBrains Community Discord
    • Open API Community Support
  • Misc Links
    • FileDocumentManager Examples
  • Tools
    • Indices viewer
    • PsiViewer
    • UI Inspector
    • IntelliJ Platform Explorer
    • Plugin Validator
  • Tutorials
    • Publishing and Distributing a development build
    • Add New Module Type to the New Project Wizard
    • Auto-detect Executable File
  • Questions
    • Where are persistant state and settings files
Powered by GitBook
On this page
  • Reference
  • Unanswered Questions

Was this helpful?

  1. Project Setup

Target a Specific IDE

In this tutorial we will learn how to create a plugin that targets a specific IDE.

PreviousPlugin Development Notes for JetBrains IDEsNextActions

Last updated 1 year ago

Was this helpful?

Plugins are configured to target IntelliJ Community Edition by default. The general process to target a specific IDE is to set the intellij.type attribute and optionally add any language specific plugins to your project's build.gradle file. Any plugins that you have listed as dependencies must also support your targeted IDE platform.

There are a couple of IDEs, PhpStorm for example, that do not have a specific IDE type and instead require that you target IntelliJ Ultimate instead.

Best Practice: target a specific platform

The main advantage of targeting a specific IDE is that it limits the available APIs that are included with your plugin to only those that are available to the targeted IDE. This can reduce the surface area of your plugin has as well as reduce the size of the final plugin. For this reason it is seen as a best practice to explicitly target a specific IDE platform.

Reference

Unanswered Questions

  • How to target PhpStorm, Webstorm, Android Studio

    • Once figured out do pull request to example plugins

Configuring Build.Gradle to Target Products other than IntelliJ IDEA
Configuring Plugin Projects Targeting PhpStorm
Simple plugin for PyCharm
Simple plugin for CLion
Simple plugin for Rider
https://plugins.jetbrains.com/docs/intellij/phpstorm.html#configuring-plugin-projects-targeting-phpstorm
https://confluence.jetbrains.com/display/PhpStorm/Setting-up+environment+for+PhpStorm+plugin+development