IntelliJ IDEA

Open API and Plugins


Some of the plugins only work with Ultimate Edition due to API dependencies.

Rich set of plugins

IntelliJ IDEA has inspired many Java developers to write plug-ins and now it has a robust plugin ecosystem with around 300 available plugins and new ones appearing nearly every week. We truly appreciate the efforts of our community members and others who have made our smart and intelligent IDE even more intelligent and smart through their plug-ins.

Plugins can add a lot of new features as well extend existing ones. Here is just short list of IDE improvements added by plugins:

  • Code inspections and refactoring
  • Custom editors and tool windows
  • Language support
  • Application server and profiler integrations
  • Version Control System integrations
  • Frameworks and technologies support
  • Integration with external applications
  • User interface improvements, instrument panels, and menus
  • Compilers
  • Utility plugins
  • And more

Visit Plugin Repository to get the full list of available plugins, discuss plugins functionality and download plugins.

Easy plugins management in IntelliJ IDEA

IntelliJ IDEA smartly integrates with the Plugin Repository which holds the third-party plugins. This integration, supplied with a convenient UI, helps you incorporate all available plugins without switching out of IntelliJ IDEA (Settings | Plugins).

Easy plugins management in IntelliJ IDEA

Features and customization options include:

  • Quick install/uninstall procedure, with convenient plugins browser
  • Simple and speed search through the list of plugins
  • HTTP Proxy settings
  • Smart handling of plugin version collisions
  • One-click download of outdated plugins
  • Displaying the date of plugin upload
  • Color indicator of just installed, out-of-date, up-to-date plugins
  • Showing all installed plugins that are not in the Plugin Repository
  • Switching between tree/list modes in plugin view
  • And more

Documentation on IntelliJ IDEA's Open API, together with some examples, can be found in the doc\openapi folder of your IntelliJ IDEA installation directory. Third party plug-ins can be found and shared at the IntelliJ Community web site.

Get a general overview of how to create and publish a plugin for IntelliJ IDEA: Live demo

Open API for plugin development

IntelliJ IDEA provides a rich set of open APIs that allow third parties to integrate their solutions and extend existing IntelliJ IDEA functionality. Along with APIs for a wide range of commonly used functionality, IntelliJ IDEA provides specialized open APIs for adding new languages support, integrating version control systems and application servers.

Language API for adding new languages support

Many of IntelliJ IDEA's smart language features are now available to other languages through the new Language API (e.g. the new JavaScript support uses the Language API). A plugin writer can define a lexer/parser, reference resolution algorithm, and custom validators to enable:

  • Find usages
  • Rename refactoring
  • Go to declaration
  • View declaration (Ctrl + Shift + I)
  • Code completion
  • Safe delete
  • On-the-fly errors/warnings annotations plus quick fixes and intention actions
  • And much more

Read the "Developing Custom Language Plugins" article »

Plugin development assistance

Since version 5.0, IntelliJ IDEA adds a new module type, Plugin Module. Together with the Plugin Run/Debug configuration dialog, Plugin module makes it easier to develop, run and debug IntelliJ IDEA plugins.

This module also provides the following features assisting in the plugin development process:

Auto-creation of components and actions

Automatically generates stubs for Application, Project and Module components. Moreover, the new components are intelligently registered in the corresponding plugin.xml file.

Generate externalizable

You can quickly generate the methods for saving and restoring the state and user-configurable settings of plugin components - just press Alt + Insert in the component source code, and select Generate Externalization. After that, IntelliJ IDEA will implement the required interface with the required methods and method stubs.

Global inspection API

Create custom global inspections that can be used to analyze your code at the project-wide scope. With global inspections you can perform the in-depth analysis of your entire projects and reveal the errors and discrepancies that would be normally impossible to detect. The Global Inspection API lets you incorporate this functionality in your plugins.

Injected languages API

Make use of the Language Injection IntelliJ IDEA feature in your plugins. This API provides for convenient access to Language Injection that lets you treat specific places in the editor (i.e. String literals, XML text and attributes) as parts of an arbitrary language and to extend all the productivity-aimed IntelliJ IDEA features like completion and error highlighting to support these languages. IDEA itself uses this API to treat some attributes in the Java EE related deployment descriptors as EJB-QL fragments.

API for supporting XML-based languages

Take advantage of using the native IntelliJ IDEA XML support in your plugins. This API lets you manipulate data stored in XML format through the native IntelliJ IDEA XML DOM straightforward from your plugin. Read more about using IntelliJ IDEA XML DOM API:
Accessing XML through IntelliJ IDEA DOM

to the top