Impl classes used in Groovy plugins

I'm using the Groovy plugin as a reference for my own custom lang plugin development. I've noticed, however, that the Groovy plugin uses internal (impl) classes that aren't exposed to openapi users (note i'm in the maia branch). For example, the GroovyEditorHighlighter extends  LayeredLexerEditorHighlighter, which as far as I can tell is not in the openapi; it's in the lang-impl module.

I'm tempted to do the same -- compile against idea.jar so I can use the very useful classes there. I know full well JetBrains can and probably will change those classes, but it's a reasonable trade-off to me.  And given the Groovy plugin uses impl classes, is there a good reason (aside from the obvious) I should not for my language?


1 comment
Comment actions Permalink

To follow up, I just found in where it states that all langauge plug-ins must have idea.jar in the classpath.  So I'll assume what I'm doing is okay-ish... just seems a little awkward to provide an API and then require access to internal classes. Or is the API just not "done" yet?


Please sign in to leave a comment.