Class PsiBuilderUtil

java.lang.Object
com.intellij.lang.PsiBuilderUtil

public final class PsiBuilderUtil extends Object
  • Method Details

    • advance

      public static void advance(PsiBuilder builder, int count)
      Advances lexer by given number of tokens (but not beyond the end of token stream).
      Parameters:
      builder - PSI builder to operate on.
      count - number of tokens to skip.
    • expect

      public static boolean expect(PsiBuilder builder, IElementType expectedType)
      Advances lexer if current token is of expected type, does nothing otherwise.
      Parameters:
      builder - PSI builder to operate on.
      expectedType - expected token.
      Returns:
      true if token matches, false otherwise.
    • expect

      public static boolean expect(PsiBuilder builder, TokenSet expectedTypes)
      Advances lexer if current token is of expected type, does nothing otherwise.
      Parameters:
      builder - PSI builder to operate on.
      expectedTypes - expected token types.
      Returns:
      true if token matches, false otherwise.
    • drop

      public static void drop(PsiBuilder.Marker... markers)
      Release group of allocated markers.
      Parameters:
      markers - markers to drop.
    • rollbackTo

      public static void rollbackTo(@Nullable PsiBuilder.Marker marker)
      Rolls the lexer back to position before given marker - if not null.
      Parameters:
      marker - marker to roll back to.
    • rawTokenText

      @NotNull public static @NotNull CharSequence rawTokenText(PsiBuilder builder, int index)
    • parseBlockLazy

      @Nullable public static PsiBuilder.Marker parseBlockLazy(@NotNull @NotNull PsiBuilder builder, @NotNull @NotNull IElementType leftBrace, @NotNull @NotNull IElementType rightBrace, @NotNull @NotNull IElementType codeBlock)
      tries to parse a code block with corresponding left and right braces.
      Returns:
      collapsed marker of the block or `null` if there is no code block at all.
    • hasProperBraceBalance

      public static boolean hasProperBraceBalance(@NotNull @NotNull CharSequence text, @NotNull @NotNull Lexer lexer, @NotNull @NotNull IElementType leftBrace, @NotNull @NotNull IElementType rightBrace)
      Checks if `text` looks like a proper block. In particular it (1) checks brace balance (2) verifies that the block's closing brace is the last token
      Parameters:
      text - - text to check
      lexer - - lexer to use
      leftBrace - - left brace element type
      rightBrace - - right brace element type
      Returns:
      true if `text` passes the checks