snapdragon-capture-set

1.0.1 • Public • Published

snapdragon-capture-set NPM version NPM monthly downloads NPM total downloads Linux Build Status

Plugin that adds a .captureSet() method to snapdragon, for matching and capturing substrings that have an open and close, like braces, brackets, etc

Table of Contents - [Install](#install) - [Usage](#usage) - [API](#api) - [About](#about)

Install

Install with npm:

$ npm install --save snapdragon-capture-set

Usage

var Snapdragon = require('snapdragon');
var captureSet = require('snapdragon-capture-set');
var parser = new Snapdragon.Parser()
  .use(captureSet())
  .captureSet('brace', /^\{/, /^\}/) 
  .set('text', function() {
    var pos = this.position();
    var m = this.match(/^[^{}]/);
    if (!m) return;
    return pos({
      type: 'text',
      val: m[0]
    });
  });
 
var ast = parser.parse('a{b,{c,d},e}f');
console.log(ast.nodes[2]);
// Node {
//   type: 'brace',
//   nodes:
//    [ Node { type: 'brace.open', val: '{', position: [Object] },
//      Node { type: 'text', val: 'b', position: [Object] },
//      Node { type: 'text', val: ',', position: [Object] },
//      Node { type: 'brace', nodes: [Object], position: [Object] },
//      Node { type: 'text', val: ',', position: [Object] },
//      Node { type: 'text', val: 'e', position: [Object] },
//      Node { type: 'brace.close', val: '}', position: [Object] } ],
//   position: Position { start: { line: 1, column: 2 }, end: { line: 1, column: 3 } } }

API

Example

var Snapdragon = require('snapdragon');
var captureSet = require('snapdragon-capture-set');
 
// snapdragon
var snapdragon = new Snapdragon();
snapdragon.use(captureSet());
 
// parser
snapdragon.parser.use(captureSet());

captureSet

Create a node of the given type using the specified regex or function.

Params

  • type {String}
  • regex {RegExp|Function}: Pass the regex to use for capturing the open and close nodes.
  • returns {Object}: Returns the parser instance for chaining

Example

parser.captureSet('brace', /^\{/, /^\}/);

About

Related projects

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Please read the contributing guide for advice on opening issues, pull requests, and coding standards.

Building docs

(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)

To generate the readme and API documentation with verb:

$ npm install -g verb verb-generate-readme && verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2017, Jon Schlinkert. Released under the MIT license.


This file was generated by verb-generate-readme, v0.4.1, on January 21, 2017.

Package Sidebar

Install

npm i snapdragon-capture-set

Weekly Downloads

1

Version

1.0.1

License

MIT

Last publish

Collaborators

  • jonschlinkert