IntelliJ Platform SDK DevGuide

Edit page

Key Topics

The IntelliJ Platform is very large, and very capable, and its size and scope can initially be very daunting. This page is intended to list the key topics that a plugin author would be interested in, and provide quick links to the most common extension points.

Essential concepts

  • Getting Started with plugins.
  • Testing plugins.
  • [Architectural overview] - a brief tour of the different layers of the IntelliJ Platform.
  • Component model - the IntelliJ Platform is a component based application, and is responsible for creating components and injecting dependencies. Understanding this is necessary for building plugins.
  • Extension points - how to register components with extension points, and how to find out what extension points are available.
  • Virtual files - all file access should go through the Virtual File System which abstracts and caches the file system. This means you can work with files that are on the local file system, in a zip file or are old versions from version control.
  • Extension points

Code model

The IntelliJ Platform’s code model is called the PSI - the Program Structure Index. The PSI parses code, builds indexes and creates a semantic model.

Common extension points

The IntelliJ Platform is extremely extensible, and most features and services can be extended. Some of the common extension points are:

  • Actions - menu and toolbar items
  • Code inspections - code analysis that looks at the syntax trees and semantic models and highlight issues in the editor.
  • Intentions - context specific actions that are available in the Alt+Enter menu when the text caret is at a certain location.
  • Code completion.
Last modified: 29 September 2017