remove whitespace from the end of the last newline and improve newlines for switches
This commit is contained in:
parent
60a7e40140
commit
8d92a75190
@ -111,9 +111,33 @@ Buffer.prototype._newline = function (removeLast) {
|
|||||||
if (removeLast && this.isLast("\n")) this.removeLast("\n");
|
if (removeLast && this.isLast("\n")) this.removeLast("\n");
|
||||||
|
|
||||||
this.removeLast(" ");
|
this.removeLast(" ");
|
||||||
|
this._removeSpacesAfterLastNewline();
|
||||||
this._push("\n");
|
this._push("\n");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If buffer ends with a newline and some spaces after it, trim those spaces.
|
||||||
|
*/
|
||||||
|
|
||||||
|
Buffer.prototype._removeSpacesAfterLastNewline = function () {
|
||||||
|
var lastNewlineIndex = this.buf.lastIndexOf("\n");
|
||||||
|
if (lastNewlineIndex === -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var index = this.buf.length - 1;
|
||||||
|
while (index > lastNewlineIndex) {
|
||||||
|
if (this.buf[index] !== " ") {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index === lastNewlineIndex) {
|
||||||
|
this.buf = this.buf.substring(0, index + 1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Buffer.prototype.push = function (str, noIndent) {
|
Buffer.prototype.push = function (str, noIndent) {
|
||||||
if (!this.format.compact && this._indent && !noIndent && str !== "\n") {
|
if (!this.format.compact && this._indent && !noIndent && str !== "\n") {
|
||||||
// we have an indent level and we aren't pushing a newline
|
// we have an indent level and we aren't pushing a newline
|
||||||
|
|||||||
@ -149,11 +149,10 @@ exports.SwitchStatement = function (node, print) {
|
|||||||
this.space();
|
this.space();
|
||||||
this.push("{");
|
this.push("{");
|
||||||
print.sequence(node.cases, { indent: true });
|
print.sequence(node.cases, { indent: true });
|
||||||
this.removeLast("\n");
|
|
||||||
this.push("}");
|
this.push("}");
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.SwitchCase = function (node, print) {
|
exports.SwitchCase = function (node, print, parent) {
|
||||||
if (node.test) {
|
if (node.test) {
|
||||||
this.push("case ");
|
this.push("case ");
|
||||||
print(node.test);
|
print(node.test);
|
||||||
|
|||||||
@ -41,7 +41,8 @@ var isHelper = function (node) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var isType = function (node) {
|
var isType = function (node) {
|
||||||
return t.isLiteral(node) || t.isObjectExpression(node) || t.isArrayExpression(node) || t.isIdentifier(node) || t.isMemberExpression(node);
|
return t.isLiteral(node) || t.isObjectExpression(node) || t.isArrayExpression(node) ||
|
||||||
|
t.isIdentifier(node) || t.isMemberExpression(node);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.nodes = {
|
exports.nodes = {
|
||||||
@ -56,11 +57,9 @@ exports.nodes = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
SwitchCase: function (node, parent) {
|
SwitchCase: function (node, parent) {
|
||||||
if (parent.cases[0] === node) {
|
return {
|
||||||
return {
|
before: node.consequent.length || parent.cases[0] === node
|
||||||
before: true
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
LogicalExpression: function (node) {
|
LogicalExpression: function (node) {
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
function test() {
|
function test() {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* this is comment
|
* this is comment
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -20,8 +20,10 @@
|
|||||||
switch (_ret) {
|
switch (_ret) {
|
||||||
case "continue":
|
case "continue":
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case "break":
|
case "break":
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (typeof _ret === "object") return _ret.v;
|
if (typeof _ret === "object") return _ret.v;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user