From c77e782eb101ae69d7bf7c1c9ed3403f9cbaecaf Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Mon, 29 Jul 2024 19:33:08 -0700 Subject: [PATCH] Use yaml linebreak for header, trim header lines This brings the header serialization in-line with the comment serialization. --- .../moonrise/common/config/config/YamlConfig.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/ca/spottedleaf/moonrise/common/config/config/YamlConfig.java b/src/main/java/ca/spottedleaf/moonrise/common/config/config/YamlConfig.java index f0fdfeb..44c1479 100644 --- a/src/main/java/ca/spottedleaf/moonrise/common/config/config/YamlConfig.java +++ b/src/main/java/ca/spottedleaf/moonrise/common/config/config/YamlConfig.java @@ -38,6 +38,8 @@ public final class YamlConfig { public volatile T config; private final Yaml yaml; + private final LoaderOptions loaderOptions; + private final DumperOptions dumperOptions; public YamlConfig(final Class clazz, final T dfl) throws Exception { this(clazz, dfl, new TypeAdapterRegistry()); @@ -56,6 +58,8 @@ public final class YamlConfig { dumperOptions.setProcessComments(true); dumperOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + this.loaderOptions = loaderOptions; + this.dumperOptions = dumperOptions; this.yaml = new Yaml(new YamlConstructor(loaderOptions), new YamlRepresenter(dumperOptions), dumperOptions, loaderOptions); } @@ -116,12 +120,13 @@ public final class YamlConfig { } final StringBuilder ret = new StringBuilder(); + final String lineBreak = this.dumperOptions.getLineBreak().getString(); for (final String line : header.split("\n")) { - ret.append("# ").append(line).append('\n'); + ret.append("# ").append(line.trim()).append(lineBreak); } - ret.append('\n'); + ret.append(lineBreak); return ret.append(this.saveToString()).toString(); } @@ -139,7 +144,6 @@ public final class YamlConfig { super(options); this.representers.put(TypeAdapterRegistry.CommentedData.class, new CommentedDataRepresenter()); - } private final class CommentedDataRepresenter implements Represent {