first-mate

TextMate helpers

First Mate

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 {valuescopes} 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.

  • Clone the repository
  • Run npm install
  • Run npm test to run the specs
  • Run npm run benchmark to benchmark fully tokenizing jQuery 2.0.3 and the CSS for Twitter Bootstrap 3.1.1