Icon for gfsd IntelliJ IDEA

Tutorial: all you need to know for IntelliJ plugin development

Symbolic header image that depicts a component "plugging into" IntelliJ with a plug

So you’re interested in plugin development for a Jetbrains' IntelliJ-based IDE such as IntelliJ IDEA, GoLand, or Android Studio. You’ve come to the right place! Our blog post series will provide you with fundamental information on getting started with developing extensions for JetBrains IDEs. All this information stems from our experiences developing our own plugin, Symflower.

In later posts, we’ll be covering specific topics related to plugin development, and providing best practices to help improve efficiency when developing extensions.

Getting started with creating an IntelliJ plugin

We have an excellent step-by-step guide to get you started on IntelliJ plugin development which also teaches you a lot of basic concepts when working with the IntelliJ platform:

UI testing

UI tests, while more complex than unit tests, can be useful to verify assumptions at a high level of integration. Here are some tips to make UI testing more manageable:

Official resources

A lot of documentation on plugin development for JetBrains' editors exist. Here are the resources that we found most useful during our journey of developing Symflower:

  • The IntelliJ Platform SDK is the root of all official documentations about developing plugins for JetBrains editors and includes numerous articles about core developing topics and APIs.
  • Particularly useful is the Extension Point and Listener List which gives an overview over all API points where you can hook something in your plugin into the framework.
  • Also worth noting is the IntelliJ Platform Explorer where you can search for usages of platform APIs in open source plugins and jump directly to the plugin’s source code.

Community

The JetBrains Platform Slack is quite helpful when you have questions. In case you’ve never used Slack before (like me): Click “Add channels” on the left then “Browse channels” to see all channels. If you are wondering, yes, there are a lot more than the five shown in the sidebar by default.

Feedback

If you have any questions or feedback for our articles or our plugin, we’d love to hear from you! You can send us an hello@symflower.com or find us on social media.

| 2023-01-05