IntelliJ Platform is a powerful platform for building development tools targeting any language. Most of IDE features consist of language-independent and language-specific parts, and you can support a particular feature for your language with a small amount of effort: you just need to implement the language-specific part, and the language-independent part is provided for you by the platform.
This part of the documentation will explain the main concepts of the Language API and will guide you through the sequence of steps which are usually required to develop a custom language plugin. You can obtain additional information about the Language API from the JavaDoc comments for the Language API classes and from the source code of the Properties language support, which is part of the IntelliJ IDEA Community Edition source code.
If you prefer a full example to the detailed description offered on this page, please check out a step-by-step tutorial how to define custom language support on example of ".properties" files: Custom Language Support Tutorial
Providing custom language support includes the following major steps:
- Registering File Type
- Implementing Lexer
- Implementing Parser and PSI
- Syntax Highlighting and Error Highlighting
- References and Resolve
- Code Completion
- Find Usages
- Rename Refactoring
- Safe Delete Refactoring
- Code Formatter
- Code Inspections and Intentions
- Structure View
- Surround With
- Go to Class and Go to Symbol
- Documentation
- Additional Minor Features
Please ask questions or suggest missing topics in plugin development forum.