helpers for rocambole AST whitespace manipulation
npm install rocambole-whitespaceHelpers to manipulate rocamboleWhiteSpace tokens.
Used mainly by esformatter and its plugins.
``js`
var ws = require('rocambole-whitespace');
setOptions is just a way to store some constants so later on thelimit/limitBefore/limitAfter you can reference the values by Id.
`jsWhiteSpace
setOptions({
// sets "value" used by tokens (defaults to single space)
value: ' ',
// values inside "before" are used by limitBefore0
before: {
// setting to will remove all spaces before the token
parenthesis: 0
},
// values inside "after" are used by limitAfter1
after: {
// setting to will add/keep a single WhiteSpace after the token`
parenthesis: 1
}
});
Important: calling this method will override all the options.
limits the amount of WhiteSpace before a given token.
`jsnode.startToken
// remove all white spaces before node.startToken
limitBefore(node.startToken, 0);
// add/keep 2 white spaces before setOptions
limitBefore(node.startToken, 2);
// will use value stored on for before.parenthesis`
limitBefore(node.startToken, 'parenthesis');
// values smaller than zero are ignored (this won't change anything)
limitBefore(node.startToken, -1);
limits the amount of WhiteSpace after a given token.
`jsnode.startToken
// remove all white spaces after node.startToken
limitAfter(node.startToken, 0);
// add/keep 1 white space after setOptions
limitAfter(node.startToken, 1);
// will use value stored on for after.parenthesis`
limitAfter(node.startToken, 'parenthesis');
// values smaller than zero are ignored (this won't change anything)
limitAfter(node.startToken, -1);
limits the amount of WhiteSpace around a given token.
`jsnode.startToken
// add/keep 1 white space before and after
limit(node.startToken, 1);
// it's just an alias to
limitBefore(node.startToken, 1);
limitAfter(node.startToken, 1);
`
reads value stored during setOptions for a given type, or returns -1 if
not found.
`js`
assert( expectedBefore('parenthesis') === 0 );
reads value stored during setOptions for a given type, or returns -1 if
not found.
`js`
assert( expectedAfter('parenthesis') === 1 );
This module uses debug internally. To
make it easier to identify what is wrong we sometimes run the esformatter tests
with a DEBUG flag, like:
`sh``
DEBUG=rocambole:ws:* npm test
Released under the MIT License