Skip to content

Code Inspections and Intentions

Inspections

The code inspections for custom languages use the same API as all other code inspections, based on the LocalInspectionTool class.

The functionality of LocalInspectionTool partially duplicates that of Annotator.

The main differences are: - supports batch analysis of code (through the Analyze | Inspect Code... action) - the possibility to turn off the inspection (globally or by suppressing them on various levels) - ability to configure the inspection options.

If none of that is required and the analysis only needs to run in the active editor, Annotator provides better performance (because it supports incremental analysis) and more flexibility for highlighting errors.

Examples: - Code Inspections Tutorial - A simple inspection for Properties language plugin

Intentions

The code intentions for custom languages also use the standard API for intentions. The intention classes need to implement the IntentionAction interface and are registered using the com.intellij.intentionAction extension point.

Examples: - Code Intentions Tutorial - A simple intention action for Groovy - Custom Language Support Tutorial: Quick Fix