Developing an Intellij IDEA Plugin for a Custom Language— Tutorial 1-Setting up the environment

As my first intern project at WSO2, Inc I got the chance to develop a plugin for the Siddhi language. Siddhi is a query language which is used inside the WSO2 Complex Event Processor. Building this plugin was a challenging task because the documentation given by @intellijidea on developing a custom plugin is not descriptive enough, specially when implementing the debug functionality in the plugin. So I thought to share my knowledge on developing a custom language plugin for Intellij IDEA.

Custom Language Support

Custom language support provides basic functionality for working with a particular programming language. This includes:

  • File type recognition
  • Lexical analysis
  • Syntax highlighting
  • Formatting
  • Code insight and code completion
  • Debugger support
  • Intention actions
  • Spell Checker
  • Structure View
  • Usage

In this tutorial series I will be working on the above tasks.

So as the first step we need to setup the plugin development environment.

1) Install Intellij IDEA

You need to install IntelliJ IDEA version 9.0 or later (either Community Edition or Ultimate) on your computer.

2) Clone and build IntelliJ IDEA Community Edition source code (optional)

Even though this is a optional step this will make it much easier for you to debug your plugins. So I recommend to do this.

Installing Git

The source code of IntelliJ IDEA Community Edition is stored in a Git repository. Therefore, in order to check out the sources, you need to have Git installed. Check this link to get to know on how to install git.

Checkout the code

You have 2 methods to checkout the code.

  1. Via IntelliJ IDEA:
  • Select VCS ->Checkout from Version Control ->Git from the main menu
  • In the Git Repository URL field, enter git://git.jetbrains.org/idea/community.git

2. Checking out from the command line:

Please execute the following command:

git clone --depth 1 git://git.jetbrains.org/idea/community.git idea

Building and running the code

  • Run getPlugins.sh/getPlugins.bat from the project root directory to check out additional modules.
  • Open the project.
  • If an error notification about a missing required plugin (e.g. Kotlin) is shown enable or install that plugin.
  • Configure a JSDK named “IDEA jdk” (case sensitive), pointing to an installation of JDK 1.8.
  • Unless you’re running on a Mac with an Apple JDK, add /lib/tools.jar to the set of “IDEA jdk” jars.
Image Courtesy: http://www.jetbrains.org/intellij/sdk/docs/basics/img/idea_run_configuration.png
  • Configure a JSDK named “1.8”, pointing to an installation of JDK 1.8.
  • Add /lib/tools.jar to the set of “1.8” jars.
  • Use Build -> Make Project to build the code.
  • To run the code, use the provided shared run configuration “IDEA”.

3) Configuring IntelliJ Platform SDK

  • Create a new IntelliJ Platform SDK under File ->Project Structure:
  • Specify the installation folder of IntelliJ IDEA Community Edition as the home directory.
  • Select the IDEA jdk created earlier in step 2 as the default Java SDK:
  • In the Sourcepath tab of the SDK settings, click the Add button:
  • Specify the directory into which you have checked out the sources of the Community Edition:

4) Adding useful plugins

In order to develop plugins in intellij idea Plugin DevKit plugin must be enabled in IDE.

Go to File->Settings->Plugins and search for Plugin Dev kit and enable it if it is not enabled yet.

If your custom language is written using ANTLR4 install the ANTLR v4 grammar plugin. It will be helpful in future work.

Congratulations!

You have successfully created the intellij idea plugin development environment. :)

Next tutorial will be on Creating a plugin project.

Stay tuned. ;)

Tutorial 02