Open API and Plugins
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
- 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).
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
- 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
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.
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