JavaParserDefinition v. LanguageSyntaxDefinition

The IJ platform provides nice APIs for working with template languages. For instance, MultiplePsiFilesPerDocumentFileViewProvider and other components of the API make it straightforward to combine multiple languages within a single document/editor.

I’ve been using a derived Java language as the embedded scripting language within my template plugin successfully for many years. But now that the Java parser has migrated to the “syntax” API, I’m running into gaps such as JavaParserDefinition v. LanguageSyntaxDefinition. I’m trying to align my LanguageSyntaxDefinition impl with code that expects JavaParserDefinition and it’s not working out well.

Is there some way to bridge these two worlds, or a plan to provide one?

It is unlikely that we have anything like that if we have no such features/needs in the codebase

It turns out my dependency on the old Java parser can still work as-is.

The manifold template engine uses Java as a scripting language - editor support frozen at JDK 24/25 isn’t a big deal, since compiler and runtime will continue to be compatible with the latest JDK compiler.

The only concern I have now is that the IJ platform does not deprecate the old parser API for removal. I suppose if that happens, I can still maintain a copy of it for my own use.

I am still a bit surprised, though, that support for the Java language is now completely separate from custom languages; IJ has two language systems now: one based on ParserDefinition and one based on LanguageSyntaxDefinition. Where the former is compatible with all other existing platform APIs, and the latter not so much.