diff --git a/src/prettier/print-abstract-node.ts b/src/prettier/print-abstract-node.ts index 23b77b6..a40f5fc 100644 --- a/src/prettier/print-abstract-node.ts +++ b/src/prettier/print-abstract-node.ts @@ -204,7 +204,6 @@ export function printAbstractNode( } const trailingTriviaDoc = getTrailingTriviaDoc(node); - if (trailingTriviaDoc) { // prevent extra lines at end of specification if ( diff --git a/src/prettier/util/print-utils.ts b/src/prettier/util/print-utils.ts index aa8bb1b..c2f1357 100644 --- a/src/prettier/util/print-utils.ts +++ b/src/prettier/util/print-utils.ts @@ -85,6 +85,10 @@ export function addTrailingTriviaDoc( ): Doc { if (Array.isArray(doc)) { if (doc.length === 0) { + doc = [ + trailingTriviaDoc, + ]; + return doc; } diff --git a/tests/prettier/print-specification.test.ts b/tests/prettier/print-specification.test.ts index f7ba055..efcffe9 100644 --- a/tests/prettier/print-specification.test.ts +++ b/tests/prettier/print-specification.test.ts @@ -43,4 +43,12 @@ describe("Print Specification tests", () => { "ยง\n", ); }); + + test("prettified specification output is as expected for only a comment", async () => { + await testPrettierScenario( + "// Start typing your SDL here... for completions\n", + "// Start typing your SDL here... for completions\n", + "// Start typing your SDL here... for completions\n", + ); + }); }); diff --git a/tests/prettier/util/print-utils.test.ts b/tests/prettier/util/print-utils.test.ts index 3750822..5e4062b 100644 --- a/tests/prettier/util/print-utils.test.ts +++ b/tests/prettier/util/print-utils.test.ts @@ -506,6 +506,20 @@ describe("Print Utils tests", () => { ifBreak([line, ""], " "), ["// hello", hardline], ]], hardline], hardline]); + + docs = [["class", "A", ["}"], hardline], hardline]; + docs = addTrailingTriviaDoc(docs, trailingTriviaDoc); + expect(docs).toEqual([["class", "A", [[ + "}", + ifBreak([line, ""], " "), + ["// hello", hardline], + ]], hardline], hardline]); + + docs = [[]]; + docs = addTrailingTriviaDoc(docs, trailingTriviaDoc); + expect(docs).toEqual([[ + ["// hello", hardline], + ]]); }); test("no trivia comment", async () => {