API Plugin XML and JavaDocs for openapi and IDE


I have searched and searched and cannot seem to find where the actual API docs are for the plugin API that I can read in one place.


- JavaDocs for the openapi packages and IDE packages.

- The documentation to the XML tags and attributes of the plugin.xml

Thanks if you could point me to them or "how" people figure out an learn the API other than reading the wiki. I learn reading the technical stuff, like the API docs javadoc would produce for a framework of classes.



We do not publish the compiled OpenAPI javadocs. Many of the classes used in plugin development do not have adequate (or any) javadocs, so you'll need to refer to the source code anyway, and there is not much value in putting an extra intermediate step between you and the code in the present situation.

The plugin.xml structure is documented here: http://confluence.jetbrains.com/display/IDEADEV/IntelliJ+IDEA+Plugin+Structure


Ok Thanks,

I pretty much figured that after a bit more investigation.

I was really only asking about the XML schema in general. I have looked at the pag you mention about plugins. Comming from an Eclipse background, I guess I just need to understand you extention point system a bit better and where they come from.

For example, I'm trying for starters to create a new simple run target for a compiler .jar call. So I saw there was a 'programRunner' tag in the extensions, was just wondering where that was "declared".



Extension points can be declared by any plugin, so there is no way to provide an XML schema for plugin.xml. Instead, IntelliJ IDEA supports smart code analysis and completion based on the actual extension point stucture.

Most extension points are referenced from code via a static instance of the ExtensionPointName class - you can look at its usages to see how the extension points are used.

If you need to implement a run configuration, most likely you need the <configurationType> extension point, not <programRunner>.


Thanks Dmitry

I took your advice and just started writting code and looking at the code. :)

I have the SDK source code so it became obvious what was going on with the extension points. I have also looke a a few of the other "runners" out there as well and realized configurationType was probably what I needed.

Thanks for your time, I'm sure I will have a couple other questions.



Please sign in to leave a comment.