fix up whitespace on non empty last line JSX literals - fixes #668

This commit is contained in:
Sebastian McKenzie
2015-02-03 09:31:30 +11:00
parent 8e23d623c8
commit 4413da8d6e

View File

@@ -171,11 +171,21 @@ exports.JSXElement = {
var cleanJSXElementLiteralChild = function (child, args) {
var lines = child.value.split(/\r\n|\n|\r/);
for (var i = 0; i < lines.length; i++) {
var lastNonEmptyLine = 0;
var i;
for (i = 0; i < lines.length; i++) {
if (lines[i].match(/[^ \t]/)) {
lastNonEmptyLine = i;
}
}
for (i = 0; i < lines.length; i++) {
var line = lines[i];
var isFirstLine = i === 0;
var isLastLine = i === lines.length - 1;
var isLastNonEmptyLine = i === lastNonEmptyLine;
// replace rendered whitespace tabs with spaces
var trimmedLine = line.replace(/\t/g, " ");
@@ -191,6 +201,10 @@ var cleanJSXElementLiteralChild = function (child, args) {
}
if (trimmedLine) {
if (!isLastNonEmptyLine) {
trimmedLine += " ";
}
args.push(t.literal(trimmedLine));
}
}