Custom language support (File type recognition, Lexical analysis, Syntax highlighting, Formatting, Code insight and code completion, Inspections and quick-fixes, Intention actions)
Framework integration (Example: Struts)
Third-party Tool integration (manipulate third-party tools and components directly from the IDE without switching contexts.)
User interface add-ons (Apply various changes to the standard user interface of the IDE)