Package Exports
- rocambole-linebreak
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rocambole-linebreak) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
rocambole-linebreak
Helpers to manipulate rocambole
LineBreak
tokens.
Used mainly by esformatter and its plugins.
Allowed values
- positive integer (
1
till99
): "add or keep[n]
line breaks". -1
: keep original line breaks.">2"
: add linebreaks until it's over2
.">=1"
: add line breaks until it's equal or greater than1
."<2"
: remove linebreaks until it's smaller than2
."<=1"
: remove/add line breaks until it's smaller or equal to1
.
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({
// sets "value" used by `LineBreak` tokens (defaults to `"\n"`)
value: '\n',
// values inside "before" are used by `limitBefore`
before: {
// setting to `0` will remove all line breaks before the token
parenthesis: 0
},
// values inside "after" are used by `limitAfter`
after: {
// setting to `1` will add/keep a single `LineBreak` after the token
parenthesis: 1
}
});
Important: calling this method will override all the options.
limitBefore(token, typeOrValue)
limits the amount of LineBreak
before a given token.
// remove all line breaks before `node.startToken`
limitBefore(node.startToken, 0);
// add/keep 2 line breaks before `node.startToken`
limitBefore(node.startToken, 2);
// add/keep more than 1 line break
limitBefore(node.startToken, '>1');
// keep 2 line breaks or more
limitBefore(node.startToken, '>=2');
// keep less than 3 line breaks
limitBefore(node.startToken, '<3');
// will use value stored on `setOptions` for `before.parenthesis`
limitBefore(node.startToken, 'parenthesis');
// values smaller than zero are ignored (this won't change anything)
limitBefore(node.startToken, -1);
limitAfter(token, typeOrValue)
limits the amount of LineBreak
after a given token.
// remove all line breaks after `node.startToken`
limitAfter(node.startToken, 0);
// add/keep 1 line break after `node.startToken`
limitAfter(node.startToken, 1);
// add/keep more than 1 line break
limitAfter(node.startToken, '>1');
// keep 2 line breaks or more
limitAfter(node.startToken, '>=2');
// keep less than 3 line breaks
limitAfter(node.startToken, '<3');
// will use value stored on `setOptions` for `after.parenthesis`
limitAfter(node.startToken, 'parenthesis');
// values smaller than zero are ignored (this won't change anything)
limitAfter(node.startToken, -1);
limit(token, typeOrValue)
limits the amount of LineBreak
around a given token.
// add/keep 1 line break before and after `node.startToken`
limit(node.startToken, 1);
// it's just an alias to
limitBefore(node.startToken, 1);
limitAfter(node.startToken, 1);
limitBeforeEndOfFile(ast[, typeOrValue])
limits the amount of line breaks at the end of the AST.
// at least one line break at the end of the file
limitBeforeEndOfFile(ast, 1);
// if you don't pass the `typeOrValue` it will use "EndOfFile" as the type
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