Split all of the separators into functions.
This commit is contained in:
parent
3e1a661eb6
commit
8336aa52e8
@ -91,6 +91,10 @@ export function Decorator(node: Object) {
|
||||
this.newline();
|
||||
}
|
||||
|
||||
function commaSeparatorNewline() {
|
||||
this.push(",\n");
|
||||
}
|
||||
|
||||
export function CallExpression(node: Object) {
|
||||
this.print(node.callee, node);
|
||||
if (node.loc) this.printAuxAfterComment();
|
||||
@ -101,7 +105,7 @@ export function CallExpression(node: Object) {
|
||||
|
||||
let separator;
|
||||
if (isPrettyCall) {
|
||||
separator = ",\n";
|
||||
separator = commaSeparatorNewline;
|
||||
this.newline();
|
||||
this.indent();
|
||||
}
|
||||
|
||||
@ -127,8 +127,12 @@ export function InterfaceDeclaration(node: Object) {
|
||||
this._interfaceish(node);
|
||||
}
|
||||
|
||||
function andSeparator() {
|
||||
this.push(" & ");
|
||||
}
|
||||
|
||||
export function IntersectionTypeAnnotation(node: Object) {
|
||||
this.printJoin(node.types, node, { separator: " & " });
|
||||
this.printJoin(node.types, node, { separator: andSeparator });
|
||||
}
|
||||
|
||||
export function MixedTypeAnnotation() {
|
||||
@ -277,8 +281,12 @@ export function QualifiedTypeIdentifier(node: Object) {
|
||||
this.print(node.id, node);
|
||||
}
|
||||
|
||||
function orSeparator() {
|
||||
this.push(" | ");
|
||||
}
|
||||
|
||||
export function UnionTypeAnnotation(node: Object) {
|
||||
this.printJoin(node.types, node, { separator: " | " });
|
||||
this.printJoin(node.types, node, { separator: orSeparator });
|
||||
}
|
||||
|
||||
export function TypeCastExpression(node: Object) {
|
||||
|
||||
@ -52,12 +52,16 @@ export function JSXElement(node: Object) {
|
||||
this.print(node.closingElement, node);
|
||||
}
|
||||
|
||||
function spaceSeparator() {
|
||||
this.push(" ");
|
||||
}
|
||||
|
||||
export function JSXOpeningElement(node: Object) {
|
||||
this.push("<");
|
||||
this.print(node.name, node);
|
||||
if (node.attributes.length > 0) {
|
||||
this.push(" ");
|
||||
this.printJoin(node.attributes, node, { separator: " " });
|
||||
this.printJoin(node.attributes, node, { separator: spaceSeparator });
|
||||
}
|
||||
this.push(node.selfClosing ? " />" : ">");
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import repeat from "lodash/repeat";
|
||||
import * as t from "babel-types";
|
||||
|
||||
const NON_ALPHABETIC_UNARY_OPERATORS = t.UPDATE_OPERATORS.concat(t.NUMBER_UNARY_OPERATORS).concat(["!"]);
|
||||
@ -205,6 +204,16 @@ export function DebuggerStatement() {
|
||||
this.semicolon();
|
||||
}
|
||||
|
||||
function variableDeclarationIdent() {
|
||||
// "let " or "var " indentation.
|
||||
this.push(",\n ");
|
||||
}
|
||||
|
||||
function constDeclarationIdent() {
|
||||
// "const " indentation.
|
||||
this.push(",\n ");
|
||||
}
|
||||
|
||||
export function VariableDeclaration(node: Object, parent: Object) {
|
||||
this.push(node.kind + " ");
|
||||
|
||||
@ -231,14 +240,14 @@ export function VariableDeclaration(node: Object, parent: Object) {
|
||||
// bar = "foo";
|
||||
//
|
||||
|
||||
let sep;
|
||||
let separator;
|
||||
if (!this.format.compact && !this.format.concise && hasInits && !this.format.retainLines) {
|
||||
sep = `,\n${repeat(" ", node.kind.length + 1)}`;
|
||||
separator = node.kind === "const" ? constDeclarationIdent : variableDeclarationIdent;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
this.printList(node.declarations, node, { separator: sep });
|
||||
this.printList(node.declarations, node, { separator });
|
||||
|
||||
if (t.isFor(parent)) {
|
||||
// don't give semicolons to these nodes since they'll be inserted in the parent generator
|
||||
|
||||
@ -125,7 +125,7 @@ export default class Printer extends Buffer {
|
||||
}
|
||||
|
||||
if (opts.separator && i < len - 1) {
|
||||
this.push(opts.separator);
|
||||
opts.separator.call(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -187,8 +187,7 @@ export default class Printer extends Buffer {
|
||||
|
||||
printList(items, parent, opts = {}) {
|
||||
if (opts.separator == null) {
|
||||
opts.separator = ",";
|
||||
if (!this.format.compact) opts.separator += " ";
|
||||
opts.separator = commaSeparator;
|
||||
}
|
||||
|
||||
return this.printJoin(items, parent, opts);
|
||||
@ -316,6 +315,11 @@ export default class Printer extends Buffer {
|
||||
}
|
||||
}
|
||||
|
||||
function commaSeparator() {
|
||||
this.push(",");
|
||||
this.space();
|
||||
}
|
||||
|
||||
for (let generator of [
|
||||
require("./generators/template-literals"),
|
||||
require("./generators/expressions"),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user