All you need to know for IntelliJ plugin development
So you’re interested in writing plugins 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.
We have an excellent step-by-step guide to get you started on your first IntelliJ plugin which also teaches you a lot of basic concepts when working with the IntelliJ platform:
- Getting started with plugin development for JetBrains IDEs like IntelliJ, Goland, and Android Studio
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:
- Accessing plugin classes in UI tests
- Isolating tests using temporary project directories
- Testing plugins on Windows in your CI using GitLab Runner
- A better X server setup for IntelliJ plugin tests locally and in your CI
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.
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.
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 firstname.lastname@example.org or find us on social media.