rocambole-linebreak
Helpers to manipulate rocambole
LineBreak
tokens.
Used mainly by esformatter and its plugins.
Allowed values
- positive integer (
1
till 99
): "add or keep [n]
line breaks". -1
: keep original line breaks.">2"
: add linebreaks until it's over 2
.">=1"
: add line breaks until it's equal or greater than 1
."<2"
: remove linebreaks until it's smaller than 2
."<=1"
: remove/add line breaks until it's smaller or equal to 1
.
API
var br = require('rocambole-linebreak');
setOptions(opts)
setOptions
is just a way to store some constants so later on the
limit
/limitBefore
/limitAfter
you can reference the values by Id.
setOptions({
value: '\n',
before: {
parenthesis: 0
},
after: {
parenthesis: 1
}
});
Important: calling this method will override all the options.
limitBefore(token, typeOrValue)
limits the amount of LineBreak
before a given token.
limitBefore(node.startToken, 0);
limitBefore(node.startToken, 2);
limitBefore(node.startToken, '>1');
limitBefore(node.startToken, '>=2');
limitBefore(node.startToken, '<3');
limitBefore(node.startToken, 'parenthesis');
limitBefore(node.startToken, -1);
limitAfter(token, typeOrValue)
limits the amount of LineBreak
after a given token.
limitAfter(node.startToken, 0);
limitAfter(node.startToken, 1);
limitAfter(node.startToken, '>1');
limitAfter(node.startToken, '>=2');
limitAfter(node.startToken, '<3');
limitAfter(node.startToken, 'parenthesis');
limitAfter(node.startToken, -1);
limit(token, typeOrValue)
limits the amount of LineBreak
around a given token.
limit(node.startToken, 1);
limitBefore(node.startToken, 1);
limitAfter(node.startToken, 1);
limitBeforeEndOfFile(ast[, typeOrValue])
limits the amount of line breaks at the end of the AST.
limitBeforeEndOfFile(ast, 1);
limitBeforeEndOfFile(ast);
expectedBefore(type)
reads value stored during setOptions
for a given type
, or returns -1
if
not found.
assert( expectedBefore('parenthesis') === 0 );
expectedAfter(type)
reads value stored during setOptions
for a given type
, or returns -1
if
not found.
assert( expectedAfter('parenthesis') === 1 );
Debug
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:
DEBUG=rocambole:br:* npm test
License
Released under the MIT License