TextMate helpers
TextMate helpers
npm install first-mate
{ScopeSelector} = require 'first-mate'
selector = new ScopeSelector('a | b')
selector.matches(['c']) # false
selector.matches(['a']) # true
{GrammarRegistry} = require 'first-mate'
registry = new GrammarRegistry()
grammar = registry.loadGrammarSync('./spec/fixtures/javascript.json')
{tokens} = grammar.tokenizeLine('var offset = 3;')
for {value, scopes} in tokens
console.log("Token text: '#{value}' with scopes: #{scopes}")
Asynchronously load a grammar and add it to the registry.
grammarPath
- A string path to the grammar file.
callback
- A function to call after the grammar is read and added to the
registry. The callback receives (error, grammar)
arguments.
Synchronously load a grammar and add it to the registry.
grammarPath
- A string path to the grammar file.
Returns a Grammar
instance.
Generate the tokenize for the given line of text.
line
- The string text of the line.
ruleStack
- An array of Rule objects that was returned from a previous call
to this method.
firstLine
- true
to indicate that the very first line is being tokenized.
Returns an object with a tokens
key pointing to an array of token objects
and a ruleStack
key pointing to an array of rules to pass to this method
on future calls for lines proceeding the line that was just tokenized.
text
- The string text possibly containing newlines.
Returns an array of tokens for each line tokenized.
npm install
npm test
to run the specsnpm run benchmark
to benchmark fully tokenizing jQuery 2.0.3