Plugin example/tutorial for external system APIs

For something advertised as “a simple API”, the External System subsystem is rather complicated.

For example, the ExternalSystemManager class alone requires 5 type arguments and 8 method implementations. In addition, existing open source plugins that use this API are all complex and do not make for good examples (including the now-deprecated Rust plugin).

A practical tutorial/sample plugin would be very much appreciated.

You can find usages in intellij-community repo, e.g. in the bundled Gradle plugin intellij-community/plugins/gradle at master · JetBrains/intellij-community · GitHub.

I have seen those too. It’s quite hard to understand what the methods do when they are buried under hundreds of unrelated files, especially when I’m not familiar with the build system (here Gradle) in general.

I’m afraid it’s quite impossible to provide some “minimal sample” or even tutorial for something complex as build system.