Plugin development first attempt

So far, I am not encouraged by the documentation on your website for creating IDEA plugins.

The Plugin webpage here:

has a Live Demo using IDEA 5. Version 5? The current version is 9.

Is this demo still relevant? If not, why is it on your main Plugin page?

Then I go here :

and am told I need to d/l the source of IDEA from git. I don't know what git is, but ok, every project on the internet wants to use a brand new VCS repository. Fine.

But where are the instructions for integrating the git client into IDEA? I d/l and installed git at /usr/local/git.

Your instructions here:


To check out from IntelliJ IDEA, select "Version Control | Checkout from  Version Control | Git" from the main menu. In the "Git Repository URL"  field, enter:

I do not have a "Git" option under that menu item, ony CVS and SVN. Nor do I see any Git client plugins.

I love IDEA, but your documentation has always been terrible!!

This is very frustrating for a first time plug-in developer, you can't even show how to write a simple "Hello World" plugin without poorly documented external dependancies?

How do I configure IDEA to use git?

Thank you,



Since I cannot at the moment configure the Git VCS from IDEA, I am trying to use the command line to check out, following these instructions:

To check out from the command line, please use the following command:

git clone git:// idea

The master branch currently contains the code for the development  version of IntelliJ IDEA 10. To get the source code of IntelliJ IDEA  Community Edition version 9.0.x, please clone the maia branch.

Ok, HOW do I clone the "maia" branch? What is the command to do this?

And wouldn't this be useful information to put on your instruction page?


Edited to add:

From this post: found the answer. To checkout from "maia" branch, use

git clone -b maia git:// idea

That should be added to the plugin dev page, instead of just saying "check out from maia branch", SHOW how to do this.

Message was edited by: Rob Ross


I'd just like to contrast the first time plugin-dev experience between IDEA and Netbeans.

Here is the Netbeans plugin page:

I don't have to configure a new VCS system, nor download any other SDK; the plugin SDK is already part of every Netbeans install.

There's simple instructions for creating a simple plugin, including how to load that plugin after you've created it.

I have paid for IDEA since version 3 because I think it's a superior IDE to Netbeans and Eclipse.

But I expected the plugin development to be a little bit easier than it appears to be.

I was at JavaOne 2010 and specifically went to the IDEA booth to ask how to start writing plugins, and they told me everything I needed was online. I should have checked this site first so I could have gone back and said "no, it's not, please SHOW me how to write a plug-in."




What version of IDEA are you using? Is the Git Plugin ("Git Integration") installed and enabled (see list in Settings->Plugins, Tab "Installed")?


I'm running on Mac OS X, 10.6.4, not that it should matter?

My IDEA version is 9.0.3, build #IU-95.429

I previously searched for "Available" plugins and did not see anything Git-related. But now I am looking at "Installed" plugins, and I see there is a "Git Integration" plugin there, but it is not checked (not enabled.) So I have just enabled it.

Although, I have already checked out the source from the "maia" branch via the command line. I'm now going throught the wiki/confulence/jetbrains pages to try to configure a  "IntelliJ IDEA SDK".

Do I have to build the source I just checked out for this new SDK first?




AFAIK it should work w/o compiling


Rob, I have written a few plugins during the last couple of years. I think the easiest way to get started is to look at other plugins. Check out the plugins repository - - and download a couple which are open-sourced.

There is no need to download the IDEA source code in order to develop plugins. All you have to do is to set up an IntelliJ IDEA SDK and start a new plugin project. Of course the source is helpful as it provides javadoc and lets you see how the openapi behaves.

This page has a few relevant articles:

Good luck!


Well, it may not be a requirement, but it's not practical to use the same IDE you use for developing the Plug-in as the one you use for running Tests, launched from your IDE. The main problem is that both instances share config state, so state changes you make to the "Test" instance are then reflected in the main instance.

I've found it's simpler to just compile the CE sources, and use that as the Plugin DEV SDK.

However, important : The default VM settings installed by the build process DO NOT WORK when using as a Plugin SDK. I found this out through several of hours of debugging. Although I'm on a Mac, this may also be useful for other platforms.

The VM settings for the CE build were set as

-Xms128m -Xmx512m -XX:MaxPermSize=250m -ea -Xverify:none -XX:+UseCompressedOOPS -Xbootclasspath/a:../lib/boot.jar

(On Mac this is specified in the Info.plist entry in app bundle's Contents directory)

However, this is NOT USED when Running your plugin via your IDE. You must explicitly set these VM properties in the Run/Debug configurations dialog. Without setting this value, after launching the external SDK would hang. Using

-Xms256m -Xmx512m -XX:MaxPermSize=250m

Seems to have fixed this.

Another little bit of information that might be useful in the beginner's FAQ.



One of those dev pages mentions looking at the samples directory in the CE distribution. So I started with


In the CE distribution.

Unfortunately, that project does not seem to work correctly. The IDEA project files are set to use JDK 1.3, which causes many syntax coloring errors in the varioius class files. So I changed this to JDK 5.0. But this tells me no one has actually tried running this sample code in a while, even though the Plugin Dev docs point to this as the sample sources to "Learn" from.

The plugin.xml file seems to have several syntax or grammer errors (IDEA shows these lines as RED):
   <group id="Actions.ActionsPlugin.SampleGroup" text="S_ample" description="Sample group">

      <reference id="ActionsSample.ActionsPlugin.GarbageCollection"/>

"reference id" is underlined in red, with the pop-up error message "Attribute 'id' must be declared for element type 'reference'."

Well, it looks defined to me. Now what?

Same problem a little later in :

      <reference id="Actions.ActionsPlugin.HelloWorld1"/>

When I Run this, via a Plugin Run/Debug setting, NOTHING HAPPENS in the launched Test IDE. None of the Actions or Menu items or Tool buttons are added.

Clearly this "Sample" project is broken.

More frustrations!!!!



Please sign in to leave a comment.