How to build a plugin that support multiple platforms (and all version since LSP support)

Firstly I’m a total newbie (totally fumbling around in the dark) …and have managed to develop a plugin for LSP support.

I used this template GitHub - JetBrains/intellij-platform-gradle-plugin: Gradle plugin for building plugins for JetBrains IDEs

I can set the platformType to RD and my plugin runs as expected in Rider! Yay!

I want to have the plugging work for all the JetBrains Tools (Rider, IntelliJ, WebStorm etc) and versions that supports the LspServerSupportProvider. Not sure how this is determined!

It seems the above template only supports a single platformType per the grade.properties and have search around but only find example that seem totally different setups to the template.

I’m finding the documentation in general very hard to follow for folks that are not familiar with the entire toolset.

It seems (from my limited perspective, that Muti platform support would be beneficial for many plugins - and unfortunate that the template does to seem include that.

Any help appreciated !

When you actually upload your plugin, it will automatically check the dependencies used and see which IDEs have that compatibility, and will automatically choose those.

If you want to instead limit these to certain IDEs, you can do that there as well.

Here you can see my plugin, which depends on java, is compatible with all the Java platforms -

But you can see here I only depend on intellij Ultimate - no link to Aqua for example

Also see here for a bit more info

1 Like

As @RankWeis said – you should target IU instead of RD.
If you do not use Rider-specific platform components, everything should work similarly on all platforms.

In addition, if you will target IU but still want to check how it works in other IDEs and run them locally, register a custom runIde task with:

val runRider by intellijPlatformTesting.runIde.registering {
  type = IntelliJPlatformType.Rider
}