Skip to content

Latest commit

 

History

History
119 lines (98 loc) · 2.65 KB

README.md

File metadata and controls

119 lines (98 loc) · 2.65 KB

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.