Skip to content

TheRealSyler/test-grammar

Repository files navigation

Test grammar

npmV Custom githubLastCommit

Utility for testing grammar files, used with vscode.

Usage example

import { TestGrammar } from 'test-grammar';
new TestGrammar(
  JSON.stringify({
    scopeName: 'source.test',
    name: 'test',
    patterns: [
      {
        begin: '@',
        end: '$\\n?|(?=\\s|,|\\(|\\)|\\[|>)',
        name: 'at',
        patterns: [
          {
            match: '.*',
            name: 'name'
          }
        ]
      },
      {
        begin: '\\*\\*',
        end: '\\*\\*',
        name: 'bold',
        patterns: [
          {
            match: '[A-z]+',
            name: 'text'
          },
          {
            match: '\\d+',
            name: 'number'
          },
          {
            match: ' *',
            name: 'whitespace'
          }
        ]
      }
    ]
  }),
  { useSourceAsFile: true },
  run => {
    run(
      'test',
      `@syler
**text 0**`,
      `at|at name
bold|bold text|bold whitespace|bold number|bold`
    );
  }
);

Docs

interfaces

Expect
type Expect = string[][][] | string;
Text
type Text = string[] | string;
Options
interface Options {
    /** Also Logs Tokens that passed the test. */
    logAllTokens: boolean;
    /** Calls `process.exit(1)` when tests failed or if there is an error. */
    exitProcess: boolean;
    /** Uses the source parameter as input file, the input string is expected to be valid json textmate grammar. */
    useSourceAsFile: boolean;
}
Run
type Run = (name: string, text: Text, expect: Expect, options?: Partial<RunOptions>) => void;
RunOptions
type RunOptions = Pick<Options, 'logAllTokens'>;

Generated with suf-cli

Copyright (c) 2020 Leonard Grosoli Licensed under the MIT license.

About

utility for testing vscode grammar files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published