Where does one start?

I'm having a little difficulty determining the correct starting point (i.e. documentation) to begin plugin development for IDEA.

I've identified that I must implement one of two interfaces, and found some javadoc, but not much more - is there anything else?

I'd like to write a plugin that is an additional tab in the "Configurations"; e.g. Application, JUnit, Remote, 'MyPlugin'.

Please excuse me if I've missed something obvious in my search. Additional pointers of where to start are most appreciated.

11 comments

Your plugin has to implement ApplicationComponent, JDOMExternalizable,
and Configurable. Take a look at the Intention PowerPack plugin, that's
a good example of a configurable plugin. (IPP plugin implements
ExportableApplicationComponent instead of ApplicationComponent, which
IMHO isn't necessary.)

Tony Morris wrote:

I'm having a little difficulty determining the correct starting point (i.e. documentation) to begin plugin development for IDEA.

I've identified that I must implement one of two interfaces, and found some javadoc, but not much more - is there anything else?

I'd like to write a plugin that is an additional tab in the "Configurations"; e.g. Application, JUnit, Remote, 'MyPlugin'.

Please excuse me if I've missed something obvious in my search. Additional pointers of where to start are most appreciated.

0

Tony

>I'm having a little difficulty determining the correct starting point (i.e. documentation) to begin plugin development for IDEA.

>

The standard way is to reverse-engineer an existing plugin source.

Thanks to the DevKit, we can now create/package ready-to-run plugin
projects, that you can just download, open and run
(, as long as you have defined an IDEA SDK, in your IDE settings.JDK &
Global libraries).

Here are 3 simple plugins, with DevKit-ready-to-run source/project:
http://www.intellij.org/twiki/bin/view/Main/ColorChooserPlugin
http://www.intellij.org/twiki/bin/view/Main/StringEditorPlugin
http://www.intellij.org/twiki/bin/view/Main/MiniWikiPlugin

Once you've compiled the code (basically, to check your IDEA SDK), check
the plugin-xml file: that the entry point.
To launch a 2nd-instance of IDEA, with the plugin, just run the "launch
2nd instance" config.

(note: none of these plugins uses a config panel currently.)

The list of ready-to-run plugin source is growing (hint to all
plugin-authors)


Alain

0

Perhaps I should be more specific: I wish to create a Run/Debug configuration - very similar to how the JUnit one works.

I had a look at Intention Power Pack, and although the plugin is in the plugins directory, I'm unable to find some option to enable to configure it (as per com.siyeh.ipp.ConfigurationPanel).

I'm surprised that no decent documentation is available. Is it a purely community-driven API?

0

In this case take a look at the sources of the DevKit plugin. This
plugin defines an own Run/Debug configuration.

Tony Morris wrote:

Perhaps I should be more specific: I wish to create a Run/Debug configuration - very similar to how the JUnit one works.

I had a look at Intention Power Pack, and although the plugin is in the plugins directory, I'm unable to find some option to enable to configure it (as per com.siyeh.ipp.ConfigurationPanel).

I'm surprised that no decent documentation is available. Is it a purely community-driven API?


--
Martin Fuhrer
Fuhrer Engineering AG
http://www.fuhrer.com

0

Please excuse my apparant confusion.
All attempts to find some concrete information have resulted in recursion.

I am very hopeful that the "DevKit" can provide some insight into what I initially assumed would be a trivial task, but has become quite a dilemma.
I'm assuming the "DevKit" is itself a plugin that allows developers to write plugins?

Please tell me where I can obtain more information regarding this software component.

Assistance is much appreciated.

0

Tony

>I'm assuming the "DevKit" is itself a plugin that allows developers to write plugins?
>

>

It's a plugin that let's you
- define an "IDEA JDK", that includes all the jars necessary for plugin
compilation.
- run a 2nd instance of IDEA from your current plugin project, to test it.
The later part is the one that's interesting to you.

>Please tell me where I can obtain more information regarding this software component.
>

>

Download the IDEA-DEV zip file. It contains the source of all the
default plugins, including the DevKit plugin.

Alain

0

Tony Morris wrote:

I am very hopeful that the "DevKit" can provide some insight into what I initially assumed would be a trivial task, but has become quite a dilemma.
I'm assuming the "DevKit" is itself a plugin that allows developers to write plugins?

Please tell me where I can obtain more information regarding this software component.


I think the information missing here is that the DevKit is available
through the EAP program for the latest EAP release only. It's a
relatively new development. However, I believe it does allow you to
develop for an older version of IDEA such as 4.5.

http://www.intellij.net/eap/products/idea/download.jsp

Ciao,
Gordon

--
Gordon Tyler (Software Developer)
Quest Software <http://www.quest.com/>
260 King Street East, Toronto, Ontario M5A 4L5, Canada
Voice: (416) 933-5046 | Fax: (416) 933-5001

0

Cheers - I've had a look and determined (guessed actually) that I need to implement the com.intellij.execution.configurations.ConfigurationType interface.

The plugins included with the download seem to be J2EE-centric. Is it possible to obtain the source to the JUnit plugin (specifically, the JUnit ConfigurationType implementation)?

0

Tony,

Is it possible to obtain the source to the JUnit plugin (specifically, the JUnit ConfigurationType implementation)?

>

All (most) plugins are described/hosted on the wiki.
http://www.intellij.org/twiki/bin/view/Main/JUnitTestPlugin

Alain

0

>IPP plugin implements ExportableApplicationComponent instead of ApplicationComponent, which IMHO isn't necessary.

Good catch. IPP used to have independent configuration, and so it made sense to make it implement ExportableApplicationComponent so that settings could be imported and exported. Now that all configuration is done via the stock Intention Settings panel, I'll simplify.

--Dave Griffith

0

Hello Tony,

TM> Please excuse me if I've missed something obvious in my search.
TM> Additional pointers of where to start are most appreciated.

Maybe i'm too late, but
http://www.intellij.org/twiki/bin/view/Main/PluginDevelopmentHowTo

Thanks
--
Alexey Efimov, Java Developer
Tops BI
http://www.topsbi.ru

0

Please sign in to leave a comment.