IntelliJ Platform Plugin SDK Help

Syntax Errors

The IntelliJ Platform provides a mechanism for analyzing the PSI tree and highlighting syntax errors out of the box.

While the PSI tree for the code is being built, a parser tries to consume tokens according to language grammar. When it encounters a syntax error, like an unexpected token, a PsiErrorElement is created and added to the PSI tree with an appropriate error description. In the code analysis daemon, the IDE visits every PSI element in the tree, and when a PsiErrorElement is encountered, information about it is collected and used while highlighting the code in the editor.

Controlling Syntax Errors Highlighting

In some cases highlighting syntax errors is insufficient or even unnecessary:

  • An error can be presented to the user in an easier-to-understand way.

  • The actual error cause is in a different location in the code, which is not easily visible when looking at the syntax error.

  • An error can be safely ignored in a given context, e.g., incomplete code fragment injected in a Markdown code block.

  • A syntax error is not critical and can be considered a warning or even information.

The IntelliJ Platform allows plugins to disable highlighting particular syntax errors. These errors can be optionally handled by additional Annotators or Inspections if needed.

To control which PsiErrorElements should be reported and which can be ignored, a plugin has to provide an implementation of HighlightErrorFilter and register it in the com.intellij.highlightErrorFilter extension point. It contains a single abstract method shouldHighlightErrorElement() which should return false if a given PsiErrorElement should not be highlighted in the editor.

Examples:

See also:

Last modified: 01 December 2022