feat: option to disable inner classes move to parent (#1817)

This commit is contained in:
Skylot
2023-05-06 18:07:10 +01:00
parent d29263ef57
commit f53dbbfebf
19 changed files with 85 additions and 32 deletions
@@ -178,6 +178,7 @@ public class JCommanderWrapper<T> {
// load and init all options plugins to print all options
try (JadxDecompiler decompiler = new JadxDecompiler(new JadxArgs())) {
JadxPluginManager pluginManager = decompiler.getPluginManager();
pluginManager.load();
pluginManager.initAll();
for (PluginContext context : pluginManager.getAllPluginContexts()) {
JadxPluginOptions options = context.getOptions();
@@ -81,7 +81,7 @@ public class JadxCLIArgs {
@Parameter(names = { "--no-imports" }, description = "disable use of imports, always write entire package name")
protected boolean useImports = true;
@Parameter(names = { "--no-debug-info" }, description = "disable debug info")
@Parameter(names = { "--no-debug-info" }, description = "disable debug info parsing and processing")
protected boolean debugInfo = true;
@Parameter(names = { "--add-debug-lines" }, description = "add comments with debug line numbers if available")
@@ -93,6 +93,9 @@ public class JadxCLIArgs {
@Parameter(names = { "--no-inline-methods" }, description = "disable methods inline")
protected boolean inlineMethods = true;
@Parameter(names = { "--no-move-inner-classes" }, description = "disable move inner classes into parent")
protected boolean moveInnerClasses = true;
@Parameter(names = { "--no-inline-kotlin-lambda" }, description = "disable inline for Kotlin lambdas")
protected boolean allowInlineKotlinLambda = true;
@@ -313,6 +316,7 @@ public class JadxCLIArgs {
args.setInsertDebugLines(addDebugLines);
args.setInlineAnonymousClasses(inlineAnonymousClasses);
args.setInlineMethods(inlineMethods);
args.setMoveInnerClasses(moveInnerClasses);
args.setAllowInlineKotlinLambda(allowInlineKotlinLambda);
args.setExtractFinally(extractFinally);
args.setRenameFlags(renameFlags);
@@ -395,6 +399,10 @@ public class JadxCLIArgs {
return inlineMethods;
}
public boolean isMoveInnerClasses() {
return moveInnerClasses;
}
public boolean isAllowInlineKotlinLambda() {
return allowInlineKotlinLambda;
}