From 4bc3f9fb27ad400397665fa7b3f25fccf1b64961 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 5 Jan 2021 17:15:10 +0100 Subject: [PATCH] [jOOQ/jOOQ#11189] Fixed line wrapping --- .../org/jooq/codegen/GeneratorWriter.java | 35 +++++++++++++++++-- .../java/org/jooq/codegen/JavaGenerator.java | 30 ---------------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/GeneratorWriter.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/GeneratorWriter.java index f250523ea9..b912909ea9 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GeneratorWriter.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GeneratorWriter.java @@ -244,14 +244,45 @@ public abstract class GeneratorWriter> { translated = new ArrayList<>(); } - sb.append(String.format(string, translated.toArray()).replace(newlineString, indent)); + appendWrapped(String.format(string, translated.toArray()), indent.toString()); } else - sb.append(string.replace(newlineString, indent)); + appendWrapped(string, indent.toString()); return (W) this; } + private void appendWrapped(String string, String indent) { + string = string.replace(newlineString, indent); + + if (blockComment) { + int lineLength = 0; + + for (int i = 0; i < string.length(); i++) { + sb.append(string.charAt(i)); + lineLength++; + + if (peekNewline(string, i)) { + lineLength = 0; + } + else if (lineLength > 70 && Character.isWhitespace(string.charAt(i))) { + sb.append(indent); + lineLength = 0; + } + } + } + else + sb.append(string); + } + + private boolean peekNewline(String string, int i) { + for (int j = 0; j < newlineString.length(); j++) + if (i + j >= string.length() || string.charAt(i + j) != newlineString.charAt(j)) + return false; + + return true; + } + @SuppressWarnings("unchecked") public W printlnIf(boolean condition) { if (condition) diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java index c56f59cdcb..ec3b6a7d81 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -8204,36 +8204,6 @@ public class JavaGenerator extends AbstractGenerator { return result; } - protected void printParagraph(GeneratorWriter out, String comment, String indent) { - boolean newLine = true; - int lineLength = 0; - - for (int i = 0; i < comment.length(); i++) { - if (newLine) { - out.print(indent); - - newLine = false; - } - - out.print(comment.charAt(i)); - lineLength++; - - if (comment.charAt(i) == '\n') { - lineLength = 0; - newLine = true; - } - else if (lineLength > 70 && Character.isWhitespace(comment.charAt(i))) { - out.println(); - lineLength = 0; - newLine = true; - } - } - - if (!newLine) { - out.println(); - } - } - protected void printPackage(JavaWriter out, Definition definition) { printPackage(out, definition, Mode.DEFAULT); }