Prism API - v2.0.0-alpha.1
    Preparing search index...

    Interface Grammar

    interface Grammar {
        $delete?: TokenName[];
        $inner?: string | Grammar | (() => Grammar);
        $insert?: Partial<Record<TokenName, InsertableToken>>;
        $insertAfter?: Partial<Record<TokenName, GrammarTokens>>;
        $insertBefore?: Partial<Record<TokenName, GrammarTokens>>;
        $merge?: Partial<
            Record<
                TokenName,
                Partial<Omit<GrammarToken, "pattern">> & { pattern?: RegExpLike },
            >,
        >;
        $placeholder?: boolean;
        $rest?: string | Grammar;
        $tokenize?: (code: string, grammar: Grammar, Prism: Prism) => TokenStream;
        [token: string]:
            | string
            | boolean
            | Grammar
            | RegExpLike
            | GrammarToken
            | (RegExpLike | GrammarToken)[]
            | (() => Grammar)
            | ((code: string, grammar: Grammar, Prism: Prism) => TokenStream)
            | Partial<Record<TokenName, InsertableToken>>
            | TokenName[]
            | Partial<
                Record<
                    TokenName,
                    Partial<Omit<GrammarToken, "pattern">> & { pattern?: RegExpLike },
                >,
            >
            | Partial<
                Record<
                    TokenName,
                    Partial<
                        Record<
                            TokenName,
                            RegExpLike
                            | GrammarToken
                            | (RegExpLike | GrammarToken)[],
                        >,
                    >,
                >,
            >;
    }

    Hierarchy

    • GrammarSpecial
    • GrammarPatch
      • Grammar

    Indexable

    • [token: string]:
          | string
          | boolean
          | Grammar
          | RegExpLike
          | GrammarToken
          | (RegExpLike | GrammarToken)[]
          | (() => Grammar)
          | ((code: string, grammar: Grammar, Prism: Prism) => TokenStream)
          | Partial<Record<TokenName, InsertableToken>>
          | TokenName[]
          | Partial<
              Record<
                  TokenName,
                  Partial<Omit<GrammarToken, "pattern">> & { pattern?: RegExpLike },
              >,
          >
          | Partial<
              Record<
                  TokenName,
                  Partial<
                      Record<
                          TokenName,
                          RegExpLike
                          | GrammarToken
                          | (RegExpLike | GrammarToken)[],
                      >,
                  >,
              >,
          >
    Index
    $delete?: TokenName[]
    $inner?: string | Grammar | (() => Grammar)

    The language of everything that is not matched by this grammar.

    The code is tokenized with this grammar, the resulting tokens are removed, what is left is tokenized as one whole with the $inner grammar and the tokens are put back afterwards. This is how templating languages embed their host language and how diff:css highlights the code inside a diff.

    $insert?: Partial<Record<TokenName, InsertableToken>>
    $insertAfter?: Partial<Record<TokenName, GrammarTokens>>
    $insertBefore?: Partial<Record<TokenName, GrammarTokens>>
    $merge?: Partial<
        Record<
            TokenName,
            Partial<Omit<GrammarToken, "pattern">> & { pattern?: RegExpLike },
        >,
    >
    $placeholder?: boolean

    Whether the tokens of this grammar leave an identifier-like placeholder in the code that is tokenized with $inner (default), so that the inner grammar still sees a value where they were. Set to false for tokens that don’t stand for anything (e.g. the prefixes of a diff).

    $rest?: string | Grammar

    An optional grammar object that will be appended to this grammar.

    $tokenize?: (code: string, grammar: Grammar, Prism: Prism) => TokenStream