aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/decompilers/cfr
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-11-06 17:19:57 +0800
committershedaniel <daniel@shedaniel.me>2021-11-06 17:19:57 +0800
commitc412c1135474e7ec3db1ef8f9894113336b7c78f (patch)
treec664533cc80a73d93620476edc2f3528412aa2f9 /src/main/java/net/fabricmc/loom/decompilers/cfr
parenta48989057d62dc573eb919d6cbbd1cabc471f5f1 (diff)
parentcb5c009e1a8978f86e1ce0a0f872ddc20686ae6d (diff)
downloadarchitectury-loom-c412c1135474e7ec3db1ef8f9894113336b7c78f.tar.gz
architectury-loom-c412c1135474e7ec3db1ef8f9894113336b7c78f.tar.bz2
architectury-loom-c412c1135474e7ec3db1ef8f9894113336b7c78f.zip
Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/0.10.0
# Conflicts: # src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java # src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java
Diffstat (limited to 'src/main/java/net/fabricmc/loom/decompilers/cfr')
-rw-r--r--src/main/java/net/fabricmc/loom/decompilers/cfr/CFRObfuscationMapping.java19
-rw-r--r--src/main/java/net/fabricmc/loom/decompilers/cfr/LoomCFRDecompiler.java8
2 files changed, 23 insertions, 4 deletions
diff --git a/src/main/java/net/fabricmc/loom/decompilers/cfr/CFRObfuscationMapping.java b/src/main/java/net/fabricmc/loom/decompilers/cfr/CFRObfuscationMapping.java
index c8baa2a7..aae26019 100644
--- a/src/main/java/net/fabricmc/loom/decompilers/cfr/CFRObfuscationMapping.java
+++ b/src/main/java/net/fabricmc/loom/decompilers/cfr/CFRObfuscationMapping.java
@@ -30,6 +30,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
@@ -126,6 +127,10 @@ public class CFRObfuscationMapping extends NullMapping {
}
}
+ if (comment != null && !recordComponentDocs.isEmpty()) {
+ print(" * ");
+ }
+
for (String componentDoc : recordComponentDocs) {
print(" * ").print(componentDoc).newln();
}
@@ -154,13 +159,23 @@ public class CFRObfuscationMapping extends NullMapping {
lines.addAll(Arrays.asList(comment.split("\\R")));
}
- for (MappingTree.MethodArgMapping arg : mapping.getArgs()) {
+ final Collection<? extends MappingTree.MethodArgMapping> methodArgs = mapping.getArgs();
+ final List<String> params = new ArrayList<>();
+
+ for (MappingTree.MethodArgMapping arg : methodArgs) {
String argComment = arg.getComment();
if (argComment != null) {
- lines.addAll(Arrays.asList(("@param " + arg.getSrcName() + " " + argComment).split("\\R")));
+ params.addAll(Arrays.asList(("@param " + arg.getSrcName() + " " + argComment).split("\\R")));
}
}
+
+ // Add a blank line between params and the comment.
+ if (!lines.isEmpty() && !params.isEmpty()) {
+ lines.add("");
+ }
+
+ lines.addAll(params);
}
if (!lines.isEmpty()) {
diff --git a/src/main/java/net/fabricmc/loom/decompilers/cfr/LoomCFRDecompiler.java b/src/main/java/net/fabricmc/loom/decompilers/cfr/LoomCFRDecompiler.java
index bbfb0be2..cb715139 100644
--- a/src/main/java/net/fabricmc/loom/decompilers/cfr/LoomCFRDecompiler.java
+++ b/src/main/java/net/fabricmc/loom/decompilers/cfr/LoomCFRDecompiler.java
@@ -32,6 +32,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Map;
import java.util.jar.Attributes;
import java.util.jar.JarOutputStream;
@@ -64,7 +65,10 @@ public class LoomCFRDecompiler implements LoomDecompiler {
@Override
public void decompile(Path compiledJar, Path sourcesDestination, Path linemapDestination, DecompilationMetadata metaData) {
final String path = compiledJar.toAbsolutePath().toString();
- final Options options = OptionsImpl.getFactory().create(DECOMPILE_OPTIONS);
+ final Map<String, String> allOptions = new HashMap<>(DECOMPILE_OPTIONS);
+ allOptions.putAll(metaData.options());
+
+ final Options options = OptionsImpl.getFactory().create(allOptions);
ClassFileSourceImpl classFileSource = new ClassFileSourceImpl(options);
@@ -138,7 +142,7 @@ public class LoomCFRDecompiler implements LoomDecompiler {
decompiler.decompile(Paths.get("input.jar"),
Paths.get("output-sources.jar"),
lineMap,
- new DecompilationMetadata(4, null, Collections.emptyList(), null)
+ new DecompilationMetadata(4, null, Collections.emptyList(), null, Collections.emptyMap())
);
LineNumberRemapper lineNumberRemapper = new LineNumberRemapper();