I was just taking a look at the api for extending IntelliJ.
I see that the parser needs to be implemented manually and cannot be auto generated from tools like ANTLR.
One thing which is not too clear to me is this-
Is the entire file parsed completly after a certain time interval or does the ide do incremental parsing?
The documentation says nothing about how often the file is parsed or whether it is parsed incrementally or not?
This is a pretty major point cause if the entire file is reparsed then we have to subsequentally update all the data structures too which can have quite an impact on the speed of our plugin.