The IntelliJ Platform is extensive 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.
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. It means you can work with files that are on the local file system, in a zip file or are old versions from version control.
The IntelliJ Platform's code model is called the PSI - the Program Structure Interface. The PSI parses code, builds indexes, and creates a semantic model.
Common Extension Points
The IntelliJ Platform is extremely exceptionally, and most features and services can be extended. Some of the common extension points are: