Types of plugins
IntelliJ IDEA distinguishes between the following three types of plugins:
- Plugins bundled with IntelliJ IDEA. These plugins are installed and enabled by default.
- Plugins available from the IntelliJ IDEA Repository. These plugins need installation and enabling.
- Custom plugins available from enterprise repositories. These plugins also need installation and enabling.
The set of installed and enabled plugins determines the set of supported features, module types, VCS integrations, application servers, and development technologies. Once added, plugins appear in the product UI after IntelliJ IDEA restart.
Plugin repositories
JetBrains Plugins Repository resides at http://plugins.intellij.net/
and stores numerous plugins, created by the community members. You can use the Plugin Manager, represented
by the Plugins dialog, to download, install, update, and remove plugins.
For custom plugins you want to preserve for internal use only, IntelliJ IDEA helps maintain your own enterprise repositories.
Note
All plugins available from enterprise repositories are registered in the updatePlugins.xml file. Each plugin entry in this file should contain plugin identifier and URL of the plugin repository. Additionally, plugin version can be specified here. Though, if it is not pointed out in updatePlugins.xml, IntelliJ IDEA will fish it out from the plugin *.jar.
<!DOCTYPE plugins [ <!ELEMENT plugins(plugin)*> <!ELEMENT plugin (#PCDATA)> <!ATTLIST plugin id CDATA #REQUIRED url DATA #REQUIRED version CDATA #REQUIRED>]>
Refer to the sections Adding Plugins to Enterprise Repository and COnfiguring Plugins for details.
Plugin development
IntelliJ IDEA provides an open API that enables you to extend the IntelliJ IDEA functionality: add new intention actions, inspections, refactorings; integrate with version control systems, and more.
For plugin development, IntelliJ IDEA provides dedicated SDK, module and Run/Debug configuration types.
To learn more about plugin development, refer to:
PSI Viewer helps view the internal structure of your code as it is interpreted by IntelliJ IDEA.
