esformatter plugin for alignment.
install it:
npm install esformatter-align
and add to your esformatter config file:
{
"plugins": [
"esformatter-align"
]
}
input:
var longer = require('hello');
var small = require('hello');
var muchlonger = require('hello');
output:
var longer = require('hello');
var small = require('hello');
var muchlonger = require('hello');
input:
var x = {
a: 5,
bla: ''
};
output:
var x = {
a: 5,
bla: ''
};
input:
foo = 'bar';
fooooooo = 'baz';
output:
foo = 'bar';
fooooooo = 'baz';
input:
foo ? x : 'bar';
fooooooo ? y : 'baz';
output:
foo ? x : 'bar';
fooooooo ? y : 'baz';
input:
foo || x || 'bar';
fooooooo || yy || 'baz';
output:
foo || x || 'bar';
fooooooo || yy || 'baz';
The object spread operator and shorthand can either be aligned with the keys (default) or with the values.
input:
var y = { blu: 1 };
var z = true;
var x = {
z,
...y,
bla: 5
};
output (default: keys):
var y = {
blu: 1
};
var x = {
z,
...y,
bla: 5
};
output (option: value):
var y = {
blu: 1
};
var x = {
z,
...y,
bla: 5
};
Optionally disable alignment of specific expressions and set some other options
{
"esformatter": {
// ...
},
"indent": {
// ...
},
"align": {
"ObjectExpression": 1,
"VariableDeclaration": 1,
"AssignmentExpression": 1,
"TernaryExpression": 0,
"OrExpression": 0,
"SpreadAlignment": "key", // optional: "value"
"ShorthandAlignment": "key" // optional: "value"
},
// ...
}
Released under the MIT License.