Archive for March, 2006

Plugin Development in IntelliJ IDEA

Wednesday, March 15th, 2006

No one can create a tool that does everything you want it to do. That’s why so many IDE’s provide some public API for writing plugins. IntelliJ IDEA is also one of them.
But having an API is not all. How to start writing plugins for IntelliJ IDEA? What a plugin can and cannot add to the IDE?

We have tried to answer some of these questions in the new demo: GoogleSearch Plugin for IntelliJ IDEA. This demo explains the basics of plugin writing and publishing.
More experienced plugin developers can find answers in these two articles:
1.   The Basics of Plugin Development for IntelliJ IDEA by Alexey Efimov (for beginners)
2.   Developing Custom Language Plugins for IntelliJ IDEA 5.0 by Dmitry Jemerov (for more advanced developers)

Also IntelliJ IDEA tries to ease the plugin development by providing specific code generation, completion, etc. Just look what was done for 5.0 and 5.1 releases for Open API & Plugins.

But there is probably a lot of things that plugin developers want to know or want improve. As usual, we are open to your suggestions. Besides, if you have developed plugins for IntelliJ IDEA and want to share your knowledge with the others, contact us.

JetBrains Team Server EAP started

Tuesday, March 14th, 2006

We’re all very excited to announce the EAP of a new product - JetBrains Team Server, codename “Albus”. The Team Server currently provides a distributed build and continuous integration solution which we consider to be one of the best on the market. Later it will be extended with other features listed in the “Team Support” section of the Demetra Roadmap.

You can get more information on the product and download the EAP release at the Team Server homepage. As usual, you can talk to the development team in the forums and submit your bug reports and feature requests in JIRA.

Enjoy! :-)

Defining a Live Template for Null-Check

Saturday, March 11th, 2006

Note   This tip&trick was contributed by both Bas Leijdekkers and Etienne Studer.



The Live Templates provided by IntelliJ IDEA are very convenient while programming, due to their smart and context-aware behavior. On top of the predefined Live Templates, one can add custom Live Templates. For example, you can add a Live Template that creates the code to check a variable for null, intelligently suggesting all non-primitive variables in scope as candidates.

1.   Open IDE Settings | Live Templates, and click the Add button.
2.   Specify the fields as shown on the screenshot below.

  Defining Live Template

This particular example throws NPE if the expression is null. If you want just to create a conditional statement, you can write the following template text:

  if($EXPR$==null) {$END$;}

  In this case, the caret will be simply placed inside the if block.

3.   Now it is necessary to specify the meaning of the “EXPR” variable. Click Edit variables and specify values as shown below.

  Edit template variable

Once the custom Live Template is defined, you can type its abbreviation (ncheck) in your Java code, and then press Tab. IntelliJ IDEA will fill in the null-check, allowing you to choose from all objects and variables in scope.

For example, if you want to check constructor parameters for null, it will look like shown below.

Use Template

It’s Just Begun!

Friday, March 10th, 2006

Hello Dear IntelliJ IDEA friends & guests!

We are happy to say that we finally did it - started the IntelliJ IDEA Blog. We hope this resource to become not just a replacement for the embedded Help or “Tips of the Day” feature, but a community-driven portal where You will be able to talk to each other and to JetBrains as well.

We will post here opinions, tiny hints, or more comprehensive “how-to” series, to bring even more pleasure into Your life with IntelliJ IDEA :-)

You can request topics important for You, using the small form on a side-bar to the right. If You are ready to contribute an entire tip or a “how-to” posting, please send it directly to .

So, welcome and stay tuned!