Sample IntelliJ plugin using ANTLR grammar

This is a demonstration of ANTLRv4 library for IntelliJ plugins, which makes it easy to create plugins for IntelliJ-based IDEs based on an ANTLRv4 grammar.

Running the plugin for the first time

Make sure the Gradle plugin is installed in your IDE, go to File -> Open, select the build.gradle file and choose Open as Project.

If you already imported the project when it was not based on Gradle, then choose the option to delete the existing project and reimport it.

Once the IDE is done downloading dependencies and refreshing the project, you can use the Gradle tool window and use the following Tasks:

Noteworthy things

Gradle build

The build is based on Gradle, and uses the gradle-intellij-plugin, which makes it easy to:

ANTLRPsiNode

PSI nodes defined in the plugin extend ANTLRPsiNode and IdentifierDefSubtree, which automatically makes them PsiNameIdentifierOwners.

Error highlighting

Errors are shown by SampleExternalAnnotator, which makes use of org.antlr.intellij.adaptor.xpath.XPath to detect references to unknown functions.

ParserDefinition

SampleParserDefinition uses several handy classes from the adaptor library:

Misc

WARNING. Turn on Dragon speech recognition for Mac and do a rename. GUI deadlocks. Every time. Turn off dragon. No problem ever. See JetBrains forum.