Files
openide/platform/syntax/syntax-util
Mikhail Filippov 68e20d9aa8 IJPL-188202 bump Kotlin version to 2.2.0
(cherry picked from commit 4086267a8b175d5cd1fb1c0ee77b4e0ddf999524)

IJ-CR-168727

GitOrigin-RevId: 96790b1a0aa125c07767685caa008369fb7496b6
2025-07-12 00:51:47 +00:00
..

intellij.platform.syntax.util

Utilities to be used in syntax implementations

SyntaxGeneratedParserRuntime

Kotlin-multiplatform compatible runtime engine for parsers generated using the Grammar-Kit

Example of use:

    @Override
    protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) {
      PsiSyntaxBuilderFactory builderFactory = PsiSyntaxBuilderFactory.getInstance();
      var elementType = chameleon.getElementType();
      var lexer = new JsonSyntaxLexer();
      var syntaxBuilder = builderFactory.createBuilder(chameleon, lexer, getLanguage(), chameleon.getChars());
      var treeBuilder = syntaxBuilder.getSyntaxTreeBuilder()
      var runtimeParserRuntime = new PsiSyntaxParserRuntimeFactoryImpl(JsonLanguage.INSTANCE)
                                       .buildParserUtils(treeBuilder);

      new JsonParser().parse(Objects.requireNonNull(ElementTypeConverters.getConverter(JsonLanguage)).convert(elementType), runtimeParserRuntime);
      return syntaxBuilder.getTreeBuilt().getFirstChildNode();
    }