{"_id":"rocambole-whitespace","_rev":"160952","name":"rocambole-whitespace","description":"helpers for rocambole AST whitespace manipulation","dist-tags":{"latest":"1.0.0"},"maintainers":[{"name":"millermedeiros","email":""}],"time":{"modified":"2021-06-03T11:40:09.000Z","created":"2015-03-19T15:19:48.506Z","1.0.0":"2015-03-19T15:19:48.506Z"},"users":{},"author":{"name":"Miller Medeiros","email":"contact@millermedeiros.com","url":"http://millermedeiros.com"},"repository":{"type":"git","url":"https://github.com/millermedeiros/rocambole-whitespace.git"},"versions":{"1.0.0":{"name":"rocambole-whitespace","version":"1.0.0","description":"helpers for rocambole AST whitespace manipulation","main":"rocambole-whitespace.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"https://github.com/millermedeiros/rocambole-whitespace.git"},"keywords":["esformatter","rocambole","whitespace","ast"],"author":{"name":"Miller Medeiros","email":"contact@millermedeiros.com","url":"http://millermedeiros.com"},"license":"MIT","bugs":{"url":"https://github.com/millermedeiros/rocambole-whitespace/issues"},"homepage":"https://github.com/millermedeiros/rocambole-whitespace","dependencies":{"debug":"^2.1.3","repeat-string":"^1.5.0","rocambole-token":"^1.2.1"},"jshintConfig":{"node":true,"eqnull":true},"gitHead":"3b8a6638b10e417f4844cf78f29903eac0a10841","_id":"rocambole-whitespace@1.0.0","_shasum":"63330949256b29941f59b190459f999c6b1d3bf9","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"millermedeiros","email":"miller@millermedeiros.com"},"maintainers":[{"name":"millermedeiros","email":""}],"dist":{"shasum":"63330949256b29941f59b190459f999c6b1d3bf9","size":2767,"noattachment":false,"key":"/rocambole-whitespace/-/rocambole-whitespace-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/rocambole-whitespace/download/rocambole-whitespace-1.0.0.tgz"},"directories":{},"publish_time":1426778388506,"_cnpm_publish_time":1426778388506,"_hasShrinkwrap":false}},"readme":"# rocambole-whitespace\n\nHelpers to manipulate [rocambole](https://github.com/millermedeiros/rocambole)\n`WhiteSpace` tokens.\n\nUsed mainly by [esformatter](https://github.com/millermedeiros/esformatter/) and its plugins.\n\n\n## API\n\n```js\nvar ws = require('rocambole-whitespace');\n```\n\n### setOptions(opts)\n\n`setOptions` is just a way to store some constants so later on the\n`limit`/`limitBefore`/`limitAfter` you can reference the values by Id.\n\n```js\nsetOptions({\n  // sets \"value\" used by `WhiteSpace` tokens (defaults to single space)\n  value: ' ',\n\n  // values inside \"before\" are used by `limitBefore`\n  before: {\n    // setting to `0` will remove all spaces before the token\n    parenthesis: 0\n  },\n\n  // values inside \"after\" are used by `limitAfter`\n  after: {\n    // setting to `1` will add/keep a single `WhiteSpace` after the token\n    parenthesis: 1\n  }\n});\n```\n\n**Important:** calling this method will override **all** the options.\n\n### limitBefore(token, typeOrValue)\n\nlimits the amount of `WhiteSpace` before a given token.\n\n```js\n// remove all white spaces before `node.startToken`\nlimitBefore(node.startToken, 0);\n// add/keep 2 white spaces before `node.startToken`\nlimitBefore(node.startToken, 2);\n// will use value stored on `setOptions` for `before.parenthesis`\nlimitBefore(node.startToken, 'parenthesis');\n// values smaller than zero are ignored (this won't change anything)\nlimitBefore(node.startToken, -1);\n```\n\n### limitAfter(token, typeOrValue)\n\nlimits the amount of `WhiteSpace` after a given token.\n\n```js\n// remove all white spaces after `node.startToken`\nlimitAfter(node.startToken, 0);\n// add/keep 1 white space after `node.startToken`\nlimitAfter(node.startToken, 1);\n// will use value stored on `setOptions` for `after.parenthesis`\nlimitAfter(node.startToken, 'parenthesis');\n// values smaller than zero are ignored (this won't change anything)\nlimitAfter(node.startToken, -1);\n```\n\n### limit(token, typeOrvalue)\n\nlimits the amount of `WhiteSpace` around a given token.\n\n```js\n// add/keep 1 white space before and after `node.startToken`\nlimit(node.startToken, 1);\n\n// it's just an alias to\nlimitBefore(node.startToken, 1);\nlimitAfter(node.startToken, 1);\n```\n\n### expectedBefore(type)\n\nreads value stored during `setOptions` for a given `type`, or returns `-1` if\nnot found.\n\n```js\nassert( expectedBefore('parenthesis') === 0 );\n```\n\n### expectedAfter(type)\n\nreads value stored during `setOptions` for a given `type`, or returns `-1` if\nnot found.\n\n```js\nassert( expectedAfter('parenthesis') === 1 );\n```\n\n## Debug\n\nThis module uses [debug](https://www.npmjs.com/package/debug) internally. To\nmake it easier to identify what is wrong we sometimes run the esformatter tests\nwith a `DEBUG` flag, like:\n\n```sh\nDEBUG=rocambole:ws:* npm test\n```\n\n## License\n\nReleased under the MIT License\n\n","_attachments":{},"homepage":"https://github.com/millermedeiros/rocambole-whitespace","bugs":{"url":"https://github.com/millermedeiros/rocambole-whitespace/issues"},"license":"MIT"}