diff --git a/lib/ts-morph.d.ts b/lib/ts-morph.d.ts index 378ca3b00..50c985ad0 100644 --- a/lib/ts-morph.d.ts +++ b/lib/ts-morph.d.ts @@ -12200,12 +12200,12 @@ export declare class CodeBlockWriter { * Writes the text within the provided action with hanging indentation. * @param action - Action to perform with hanging indentation. */ - withHangingIndentation(action: () => void): this; + hangingIndent(action: () => void): this; /** * Writes the text within the provided action with hanging indentation unless writing a block. * @param action - Action to perform with hanging indentation unless a block is written. */ - withHangingIndentationUnlessBlock(action: () => void): this; + hangingIndentUnlessBlock(action: () => void): this; /** * Sets the current indentation level. * @param indentationLevel - Indentation level to be at. @@ -12245,11 +12245,15 @@ export declare class CodeBlockWriter { * @param block - Write using the writer within this block. */ inlineBlock(block?: () => void): this; + /** + * Indents the code one level for the current line. + */ + indent(times?: number): this; /** * Indents a block of code. * @param block - Block to indent. */ - indentBlock(block: () => void): this; + indent(block: () => void): this; /** * Conditionally writes a line of text. * @param condition - Condition to evaluate. @@ -12284,10 +12288,6 @@ export declare class CodeBlockWriter { * Writes a blank line. */ blankLine(): this; - /** - * Indents the code one level for the current line. - */ - indent(times?: number): this; /** * Writes a newline if the condition is true. * @param condition - Condition to evaluate. diff --git a/package.json b/package.json index 81cc71d6f..ea0320ece 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ }, "dependencies": { "@dsherret/to-absolute-glob": "^2.0.2", - "code-block-writer": "9.4.1", + "code-block-writer": "^10.0.0", "fs-extra": "^8.1.0", "glob-parent": "^5.0.0", "globby": "^10.0.1", diff --git a/src/compiler/ast/base/helpers/getBodyText.ts b/src/compiler/ast/base/helpers/getBodyText.ts index 88260eddc..590de7e19 100644 --- a/src/compiler/ast/base/helpers/getBodyText.ts +++ b/src/compiler/ast/base/helpers/getBodyText.ts @@ -8,7 +8,7 @@ import { printTextFromStringOrWriter } from "../../../../utils"; export function getBodyText(writer: CodeBlockWriter, textOrWriterFunction: string | WriterFunction) { writer.newLineIfLastNot(); if (typeof textOrWriterFunction !== "string" || textOrWriterFunction.length > 0) { - writer.indentBlock(() => { + writer.indent(() => { printTextFromStringOrWriter(writer, textOrWriterFunction); }); } diff --git a/src/structurePrinters/Writers.ts b/src/structurePrinters/Writers.ts index 421deb995..fac256de7 100644 --- a/src/structurePrinters/Writers.ts +++ b/src/structurePrinters/Writers.ts @@ -27,7 +27,7 @@ export class Writers { const keyNames = Object.keys(obj); writer.write("{"); if (keyNames.length > 0) { - writer.indentBlock(() => { + writer.indent(() => { writeObject(); }); } @@ -57,7 +57,7 @@ export class Writers { return (writer: CodeBlockWriter) => { writer.write("{"); if (anyPropertyHasValue(structure)) { - writer.indentBlock(() => { + writer.indent(() => { structurePrinterFactory.forTypeElementMemberedNode().printText(writer, structure); }); } @@ -91,7 +91,7 @@ export class Writers { static returnStatement(value: WriterFunctionOrValue): WriterFunction { return (writer: CodeBlockWriter) => { writer.write("return "); - writer.withHangingIndentationUnlessBlock(() => { + writer.hangingIndentUnlessBlock(() => { writeValue(writer, value); writer.write(";"); }); diff --git a/src/structurePrinters/base/InitializerExpressionableNodeStructurePrinter.ts b/src/structurePrinters/base/InitializerExpressionableNodeStructurePrinter.ts index 9b18690d0..028d3e940 100644 --- a/src/structurePrinters/base/InitializerExpressionableNodeStructurePrinter.ts +++ b/src/structurePrinters/base/InitializerExpressionableNodeStructurePrinter.ts @@ -11,7 +11,7 @@ export class InitializerExpressionableNodeStructurePrinter extends Printer { + writer.hangingIndent(() => { writer.spaceIfLastNot(); writer.write(`= ${initializerText}`); }); diff --git a/src/structurePrinters/base/ReturnTypedNodeStructurePrinter.ts b/src/structurePrinters/base/ReturnTypedNodeStructurePrinter.ts index 8483b21be..6e80a3dcf 100644 --- a/src/structurePrinters/base/ReturnTypedNodeStructurePrinter.ts +++ b/src/structurePrinters/base/ReturnTypedNodeStructurePrinter.ts @@ -17,7 +17,7 @@ export class ReturnTypedNodeStructurePrinter extends Printer { + writer.hangingIndent(() => { writer.write(`: ${returnTypeText}`); }); } diff --git a/src/structurePrinters/base/TypedNodeStructurePrinter.ts b/src/structurePrinters/base/TypedNodeStructurePrinter.ts index 5069e4782..6e77f747c 100644 --- a/src/structurePrinters/base/TypedNodeStructurePrinter.ts +++ b/src/structurePrinters/base/TypedNodeStructurePrinter.ts @@ -17,7 +17,7 @@ export class TypedNodeStructurePrinter extends Printer { const typeText = this.getText(writer, type); if (!StringUtils.isNullOrWhitespace(typeText)) { - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { writer.write(`${this.separator} ${typeText}`); }); } diff --git a/src/structurePrinters/class/ClassDeclarationStructurePrinter.ts b/src/structurePrinters/class/ClassDeclarationStructurePrinter.ts index a91971eb4..80590f709 100644 --- a/src/structurePrinters/class/ClassDeclarationStructurePrinter.ts +++ b/src/structurePrinters/class/ClassDeclarationStructurePrinter.ts @@ -43,7 +43,7 @@ export class ClassDeclarationStructurePrinter extends NodePrinter { + writer.hangingIndent(() => { if (structure.extends != null) { const extendsText = this.getText(writer, structure.extends); if (!StringUtils.isNullOrWhitespace(extendsText)) diff --git a/src/structurePrinters/enum/EnumMemberStructurePrinter.ts b/src/structurePrinters/enum/EnumMemberStructurePrinter.ts index 5c31bdc6a..4750b372b 100644 --- a/src/structurePrinters/enum/EnumMemberStructurePrinter.ts +++ b/src/structurePrinters/enum/EnumMemberStructurePrinter.ts @@ -28,7 +28,7 @@ export class EnumMemberStructurePrinter extends NodePrinter writer.write(` = `).quote(value)); + writer.hangingIndent(() => writer.write(` = `).quote(value)); } else if (typeof structure.value === "number") writer.write(` = ${structure.value}`); diff --git a/src/structurePrinters/expression/object/PropertyAssignmentStructurePrinter.ts b/src/structurePrinters/expression/object/PropertyAssignmentStructurePrinter.ts index a6aaa3b95..884386ec4 100644 --- a/src/structurePrinters/expression/object/PropertyAssignmentStructurePrinter.ts +++ b/src/structurePrinters/expression/object/PropertyAssignmentStructurePrinter.ts @@ -5,7 +5,7 @@ import { NodePrinter } from "../../NodePrinter"; export class PropertyAssignmentStructurePrinter extends NodePrinter> { protected printTextInternal(writer: CodeBlockWriter, structure: OptionalKind) { - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { writer.write(`${structure.name}: `); printTextFromStringOrWriter(writer, structure.initializer); }); diff --git a/src/structurePrinters/expression/object/SpreadAssignmentStructurePrinter.ts b/src/structurePrinters/expression/object/SpreadAssignmentStructurePrinter.ts index a65697074..c54e13725 100644 --- a/src/structurePrinters/expression/object/SpreadAssignmentStructurePrinter.ts +++ b/src/structurePrinters/expression/object/SpreadAssignmentStructurePrinter.ts @@ -5,7 +5,7 @@ import { NodePrinter } from "../../NodePrinter"; export class SpreadAssignmentStructurePrinter extends NodePrinter> { protected printTextInternal(writer: CodeBlockWriter, structure: OptionalKind) { - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { writer.write("..."); printTextFromStringOrWriter(writer, structure.expression); }); diff --git a/src/structurePrinters/function/ParameterDeclarationStructurePrinter.ts b/src/structurePrinters/function/ParameterDeclarationStructurePrinter.ts index 4d340da3e..3e9a67b4e 100644 --- a/src/structurePrinters/function/ParameterDeclarationStructurePrinter.ts +++ b/src/structurePrinters/function/ParameterDeclarationStructurePrinter.ts @@ -17,7 +17,7 @@ export class ParameterDeclarationStructurePrinter extends NodePrinter> | undefined) { if (structures == null || structures.length === 0) return; - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { this.multipleWriter.printText(writer, structures); }); } diff --git a/src/structurePrinters/interface/InterfaceDeclarationStructurePrinter.ts b/src/structurePrinters/interface/InterfaceDeclarationStructurePrinter.ts index 271d37e20..dbdfd32ed 100644 --- a/src/structurePrinters/interface/InterfaceDeclarationStructurePrinter.ts +++ b/src/structurePrinters/interface/InterfaceDeclarationStructurePrinter.ts @@ -25,7 +25,7 @@ export class InterfaceDeclarationStructurePrinter extends NodePrinter writer.write(`extends ${extendsText} `)); + writer.hangingIndent(() => writer.write(`extends ${extendsText} `)); } writer.inlineBlock(() => { diff --git a/src/structurePrinters/jsx/JsxElementStructurePrinter.ts b/src/structurePrinters/jsx/JsxElementStructurePrinter.ts index caf2e4761..b157d1de4 100644 --- a/src/structurePrinters/jsx/JsxElementStructurePrinter.ts +++ b/src/structurePrinters/jsx/JsxElementStructurePrinter.ts @@ -4,7 +4,7 @@ import { NodePrinter } from "../NodePrinter"; export class JsxElementStructurePrinter extends NodePrinter> { protected printTextInternal(writer: CodeBlockWriter, structure: OptionalKind) { - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { writer.write(`<${structure.name}`); if (structure.attributes) this.printAttributes(writer, structure.attributes); @@ -29,7 +29,7 @@ export class JsxElementStructurePrinter extends NodePrinter { + writer.indent(() => { for (const child of children) { this.factory.forJsxChildDecider().printText(writer, child); writer.newLine(); diff --git a/src/structurePrinters/jsx/JsxSelfClosingElementStructurePrinter.ts b/src/structurePrinters/jsx/JsxSelfClosingElementStructurePrinter.ts index 410083524..823cd9119 100644 --- a/src/structurePrinters/jsx/JsxSelfClosingElementStructurePrinter.ts +++ b/src/structurePrinters/jsx/JsxSelfClosingElementStructurePrinter.ts @@ -4,7 +4,7 @@ import { NodePrinter } from "../NodePrinter"; export class JsxSelfClosingElementStructurePrinter extends NodePrinter> { protected printTextInternal(writer: CodeBlockWriter, structure: OptionalKind) { - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { writer.write(`<${structure.name}`); if (structure.attributes) this.printAttributes(writer, structure.attributes); diff --git a/src/structurePrinters/jsx/JsxSpreadAttributeStructurePrinter.ts b/src/structurePrinters/jsx/JsxSpreadAttributeStructurePrinter.ts index 823840f1d..d866bd91f 100644 --- a/src/structurePrinters/jsx/JsxSpreadAttributeStructurePrinter.ts +++ b/src/structurePrinters/jsx/JsxSpreadAttributeStructurePrinter.ts @@ -4,7 +4,7 @@ import { NodePrinter } from "../NodePrinter"; export class JsxSpreadAttributeStructurePrinter extends NodePrinter { protected printTextInternal(writer: CodeBlockWriter, structure: JsxSpreadAttributeStructure) { - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { writer.write("..."); writer.write(structure.expression); }); diff --git a/src/structurePrinters/statement/VariableStatementStructurePrinter.ts b/src/structurePrinters/statement/VariableStatementStructurePrinter.ts index a888b4efb..cb8f93789 100644 --- a/src/structurePrinters/statement/VariableStatementStructurePrinter.ts +++ b/src/structurePrinters/statement/VariableStatementStructurePrinter.ts @@ -14,7 +14,7 @@ export class VariableStatementStructurePrinter extends NodePrinter) { this.factory.forJSDoc().printDocs(writer, structure.docs); - writer.withHangingIndentation(() => { + writer.hangingIndent(() => { this.factory.forModifierableNode().printText(writer, structure); writer.write(`${structure.declarationKind || VariableDeclarationKind.Let} `); this.factory.forVariableDeclaration().printTexts(writer, structure.declarations); diff --git a/src/structurePrinters/types/TypeParameterDeclarationStructurePrinter.ts b/src/structurePrinters/types/TypeParameterDeclarationStructurePrinter.ts index b44a733bc..21fda2ac1 100644 --- a/src/structurePrinters/types/TypeParameterDeclarationStructurePrinter.ts +++ b/src/structurePrinters/types/TypeParameterDeclarationStructurePrinter.ts @@ -25,7 +25,7 @@ export class TypeParameterDeclarationStructurePrinter extends NodePrinter