From 7ceb4a7668d4e13ed0f4e621f52c5fe974fd32a1 Mon Sep 17 00:00:00 2001 From: Fudge Date: Thu, 5 Dec 2019 15:45:36 +0200 Subject: Fix comments (#187) * fix comments * indent --- .../mapping/serde/EnigmaMappingsReader.java | 4 ++- .../java/cuchaz/enigma/mapping/TestComments.java | 40 ++++++++++++++++++++++ src/test/resources/comments/test.mapping | 18 ++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 src/test/java/cuchaz/enigma/mapping/TestComments.java create mode 100644 src/test/resources/comments/test.mapping diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java index 2c993f44..fba93590 100644 --- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java +++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java @@ -18,6 +18,7 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayDeque; +import java.util.Arrays; import java.util.Deque; import java.util.List; import java.util.Locale; @@ -160,7 +161,8 @@ public enum EnigmaMappingsReader implements MappingsReader { private void readJavadoc(MappingPair parent, String[] tokens) { if (parent == null) throw new IllegalStateException("Javadoc has no parent!"); - String jdLine = tokens.length > 1 ? tokens[1] : ""; // Empty string to concat + // Empty string to concat + String jdLine = tokens.length > 1 ? String.join(" ", Arrays.copyOfRange(tokens,1,tokens.length)) : ""; if (parent.getMapping() == null) throw new IllegalStateException("Javadoc requires a mapping!"); parent.getMapping().addJavadocLine(MappingHelper.unescape(jdLine)); diff --git a/src/test/java/cuchaz/enigma/mapping/TestComments.java b/src/test/java/cuchaz/enigma/mapping/TestComments.java new file mode 100644 index 00000000..b3a60056 --- /dev/null +++ b/src/test/java/cuchaz/enigma/mapping/TestComments.java @@ -0,0 +1,40 @@ +package cuchaz.enigma.mapping; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Path; +import java.nio.file.Paths; + +import cuchaz.enigma.ProgressListener; +import cuchaz.enigma.throwables.MappingParseException; +import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.MappingFileNameFormat; +import cuchaz.enigma.translation.mapping.MappingSaveParameters; +import cuchaz.enigma.translation.mapping.serde.EnigmaMappingsReader; +import cuchaz.enigma.translation.mapping.serde.TinyV2Writer; +import cuchaz.enigma.translation.mapping.tree.EntryTree; +import org.junit.Test; + +public class TestComments { + private static Path DIRECTORY; + + static { + try { + DIRECTORY = Paths.get(TestTinyV2InnerClasses.class.getResource("/comments/").toURI()); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + @Test + public void testParseAndWrite() throws IOException, MappingParseException { + ProgressListener progressListener = ProgressListener.none(); + MappingSaveParameters params = new MappingSaveParameters(MappingFileNameFormat.BY_DEOBF); + EntryTree mappings = EnigmaMappingsReader.DIRECTORY.read( + DIRECTORY, progressListener, params); + + new TinyV2Writer("intermediary", "named") + .write(mappings, DIRECTORY.resolve("convertedtiny.tiny"), progressListener, params); + } + +} \ No newline at end of file diff --git a/src/test/resources/comments/test.mapping b/src/test/resources/comments/test.mapping new file mode 100644 index 00000000..d1345583 --- /dev/null +++ b/src/test/resources/comments/test.mapping @@ -0,0 +1,18 @@ +CLASS net/minecraft/class_1158 net/minecraft/util/math/Quaternion + COMMENT it circel + COMMENT next line + FIELD field_21493 IDENTITY Lnet/minecraft/class_1158; + COMMENT moar comment thing + COMMENT near field + METHOD foo bar (FFFF)V + COMMENT method comment + COMMENT second line + COMMENT third line + ARG 1 b + COMMENT arg comment + CLASS old new + COMMENT inner comment + FIELD field_19263 iterator Lnet/minecraft/class_3980; + METHOD tryAdvance (Ljava/util/function/Consumer;)Z + ARG 1 consumer + COMMENT very inner comment \ No newline at end of file -- cgit v1.2.3