Skip to content

Commit 5218395

Browse files
moacirrfmoacirrf
authored andcommitted
Included Fernflower as alternative to CFR
1 parent 3a0dac5 commit 5218395

3 files changed

Lines changed: 21 additions & 12 deletions

File tree

src/main/java/io/github/moacirrf/javadecompiler/DecompileCfrAction.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package io.github.moacirrf.javadecompiler;
22

33
import static com.machinezoo.noexception.Exceptions.wrap;
4+
45
import static java.util.Objects.nonNull;
6+
57
import io.github.moacirrf.javadecompiler.files.TempDir;
68
import io.github.moacirrf.javadecompiler.validator.FileValidator;
9+
710
import java.awt.event.ActionEvent;
811
import java.awt.event.ActionListener;
9-
import java.io.IOException;
1012
import java.nio.file.Files;
1113
import java.nio.file.Path;
14+
1215
import org.netbeans.api.java.source.UiUtils;
1316
import org.openide.loaders.DataObject;
1417
import org.openide.awt.ActionID;
@@ -17,21 +20,21 @@
1720
import org.openide.awt.ActionRegistration;
1821
import org.openide.filesystems.FileObject;
1922
import org.openide.filesystems.FileUtil;
20-
import org.openide.util.Exceptions;
2123
import org.openide.util.NbBundle.Messages;
2224

2325
@ActionID(
2426
category = "Tools",
2527
id = "io.github.moacirrf.javadecompiler.DecompileCfrAction"
2628
)
2729
@ActionRegistration(
28-
displayName = "#CTL_DecompileWithCFR"
30+
displayName = "#CTL_DecompileWithCFR",
31+
iconInMenu = false
2932
)
3033
@ActionReferences({
31-
@ActionReference(path = "Editors/Popup", position = 200),
32-
@ActionReference(path = "UI/ToolActions", position = 200)
34+
@ActionReference(path = "Editors/Popup/Decompile"),
35+
@ActionReference(path = "UI/ToolActions/Decompile", position = 1)
3336
})
34-
@Messages("CTL_DecompileWithCFR=Decompile with CFR")
37+
@Messages("CTL_DecompileWithCFR=Decompile With CFR")
3538
public final class DecompileCfrAction implements ActionListener {
3639

3740
private static final String DECOMPILER = "cfr";

src/main/java/io/github/moacirrf/javadecompiler/DecompileFernflowerAction.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,17 @@
1717
package io.github.moacirrf.javadecompiler;
1818

1919
import static com.machinezoo.noexception.Exceptions.wrap;
20+
2021
import static java.util.Objects.nonNull;
22+
2123
import io.github.moacirrf.javadecompiler.files.TempDir;
2224
import io.github.moacirrf.javadecompiler.validator.FileValidator;
25+
2326
import java.awt.event.ActionEvent;
2427
import java.awt.event.ActionListener;
25-
import java.io.IOException;
2628
import java.nio.file.Files;
2729
import java.nio.file.Path;
30+
2831
import org.netbeans.api.java.source.UiUtils;
2932
import org.openide.loaders.DataObject;
3033
import org.openide.awt.ActionID;
@@ -33,22 +36,22 @@
3336
import org.openide.awt.ActionRegistration;
3437
import org.openide.filesystems.FileObject;
3538
import org.openide.filesystems.FileUtil;
36-
import org.openide.util.Exceptions;
3739
import org.openide.util.NbBundle.Messages;
3840

3941
@ActionID(
4042
category = "Tools",
4143
id = "io.github.moacirrf.javadecompiler.DecompileFernflowerAction"
4244
)
4345
@ActionRegistration(
44-
displayName = "#CTL_DecompileWithFernflower"
46+
displayName = "#CTL_DecompileWithFernflower",
47+
iconInMenu = false
4548
)
4649
@ActionReferences({
47-
@ActionReference(path = "Editors/Popup", position = 100),
48-
@ActionReference(path = "UI/ToolActions", position = 100)
50+
@ActionReference(path = "Editors/Popup/Decompile"),
51+
@ActionReference(path = "UI/ToolActions/Decompile", position = 2)
4952
})
5053
@Messages({
51-
"CTL_DecompileWithFernflower=Decompile with Fernflower"
54+
"CTL_DecompileWithFernflower=Decompile With Fernflower"
5255
})
5356
public final class DecompileFernflowerAction implements ActionListener {
5457

src/main/java/io/github/moacirrf/javadecompiler/fernflower/DecompilerClassImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ private String decompileInternal(FileObject file) throws Exception {
7676
IResultSaver saver = new StringResultSaver();
7777

7878
BaseDecompiler decompiler = new BaseDecompiler(provider, saver, options, logger);
79+
if (!className.endsWith(".class")) {
80+
className = className + ".class";
81+
}
7982
decompiler.addSource(new java.io.File(className));
8083
decompiler.decompileContext();
8184

0 commit comments

Comments
 (0)