diff --git a/source/generated/usage.md b/source/generated/usage.md index dde58ec..101013a 100644 --- a/source/generated/usage.md +++ b/source/generated/usage.md @@ -1,418 +1,425 @@ -```{option} -asc={value} +```{option} --ascii-strings={bool}, -asc={bool} Encode non-ASCII characters in string and character literals as Unicode escapes. **Default**: `0` ``` -```{option} -ban={value} -Path to a class that implements IIdentifierRenamer. +```{option} --banner={string}, -ban={string} +A message to display at the top of the decompiled file. + +``` + +```{option} --boolean-as-int={bool}, -bto={bool} +Represent integers 0 and 1 as booleans. + +**Default**: `1` ``` -```{option} -bsm={value} +```{option} --bytecode-source-mapping={bool}, -bsm={bool} Map Bytecode to source lines. **Default**: `0` ``` -```{option} -bto={value} -The JVM represents booleans as integers 0 and 1. This decodes 0 and 1 as boolean when it makes sense. +```{option} --decompile-assert={bool}, -das={bool} +Decompile assert statements. **Default**: `1` ``` -```{option} -das={value} -Decompile assert statements. +```{option} --decompile-complex-constant-dynamic={bool}, -dcc={bool} +Some constant-dynamic expressions can't be converted to a single Java expression with identical run-time behaviour. This decompiles them to a similar non-lazy expression, marked with a comment. -**Default**: `1` +**Default**: `0` ``` -```{option} -dbe={value} -Put the bytecode in the method body when an error occurs. +```{option} --decompile-enums={bool}, -den={bool} +Decompile enums. **Default**: `1` ``` -```{option} -dc4={value} -Java 1 to Java 4 had a different class reference format. This resugars them properly. +```{option} --decompile-finally={bool}, -fdi={bool} +Decompile finally blocks. **Default**: `1` ``` -```{option} -dcc={value} -Some constant-dynamic expressions can't be converted to a single Java expression with identical run-time behaviour. This decompiles them to a similar non-lazy expression, marked with a comment. +```{option} --decompile-generics={bool}, -dgs={bool} +Decompile generics in classes, methods, fields, and variables. -**Default**: `0` +**Default**: `1` ``` -```{option} -dcl={value} -Dump line mappings to output archive zip entry extra data +```{option} --decompile-inner={bool}, -din={bool} +Process inner classes and add them to the decompiled output. -**Default**: `0` +**Default**: `1` ``` -```{option} -dec={value} -Sometimes, odd behavior of the bytecode or unfixable problems occur. This enables or disables the adding of those to the decompiled output. +```{option} --decompile-java4={bool}, -dc4={bool} +Resugar the Java 1-4 class reference format instead of leaving the synthetic code. **Default**: `1` ``` -```{option} -dee={value} -Put the exception message in the method body or source file when an error occurs. +```{option} --decompile-preview={bool}, -dpr={bool} +Decompile features marked as preview or incubating in the latest Java versions. **Default**: `1` ``` -```{option} -den={value} -Decompile enums. +```{option} --decompile-switch-expressions={bool}, -swe={bool} +Decompile switch expressions in modern Java class files. **Default**: `1` ``` -```{option} -dgs={value} -Decompile generics in variables, fields, and statements. +```{option} --decompiler-comments={bool}, -dec={bool} +Sometimes, odd behavior of the bytecode or unfixable problems occur. This enables or disables the adding of those to the decompiled output. **Default**: `1` ``` -```{option} -din={value} -Process inner classes and add them to the decompiled output. +```{option} --dump-bytecode-on-error={bool}, -dbe={bool} +Put the bytecode in the method body when an error occurs. **Default**: `1` ``` -```{option} -dpr={value} -Decompile features marked as preview or incubating in the latest Java versions. +```{option} --dump-code-lines={bool}, -dcl={bool} +Dump line mappings to output archive zip entry extra data. + +**Default**: `0` + +``` + +```{option} --dump-exception-on-error={bool}, -dee={bool} +Put the exception message in the method body or source file when an error occurs. **Default**: `1` ``` -```{option} -ega={value} -Put explicit diamond generic arguments on method calls. +```{option} --dump-text-tokens={bool}, -dtt={bool} +Dump Text Tokens on each class file **Default**: `0` ``` -```{option} -erm={value} -Message to display when an error occurs in the decompiler. +```{option} --ensure-synchronized-monitors={bool}, -esm={bool} +If a synchronized block has a monitorenter without any corresponding monitorexit, try to deduce where one should be to ensure the synchronized is correctly decompiled. -**Default**: `Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)` +**Default**: `1` ``` -```{option} -esm={value} -If a synchronized block has a monitorenter without any corresponding monitorexit, try to deduce where one should be to ensure the synchronized is proper. +```{option} --error-message={string}, -erm={string} +Message to display when an error occurs in the decompiler. -**Default**: `1` +**Default**: `Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)` ``` -```{option} -fdi={value} -Decompile finally blocks. +```{option} --explicit-generics={bool}, -ega={bool} +Put explicit diamond generic arguments on method calls. -**Default**: `1` +**Default**: `0` ``` -```{option} -fji={value} +```{option} --force-jsr-inline={bool}, -fji={bool} Forces the processing of JSR instructions even if the class files shouldn't contain it (Java 7+) **Default**: `0` ``` -```{option} -hdc={value} +```{option} --hide-default-constructor={bool}, -hdc={bool} Hide constructors with no parameters and no code. **Default**: `1` ``` -```{option} -hes={value} +```{option} --hide-empty-super={bool}, -hes={bool} Hide super() calls with no parameters. **Default**: `1` ``` -```{option} -iec={value} -Give the decompiler information about every jar on the classpath. +```{option} --ignore-invalid-bytecode={bool}, -iib={bool} +Ignore bytecode that is malformed. **Default**: `0` ``` -```{option} -iib={value} -Ignore bytecode that is malformed. +```{option} --include-classpath={bool}, -iec={bool} +Give the decompiler information about every jar on the classpath. **Default**: `0` ``` -```{option} -ind={value} -A string of spaces or tabs that is placed for each indent level. - -**Default**: ` ` +```{option} --include-runtime={string}, -jrt={string} +Give the decompiler information about the Java runtime, either 1 or current for the current runtime, or a path to another runtime ``` -```{option} -inn={value} -Resugar Intellij IDEA's code generated by @NotNull annotations. +```{option} --incorporate-returns={bool}, -ner={bool} +Integrate returns better in try-catch blocks instead of storing them in a temporary variable. **Default**: `1` ``` -```{option} -isl={value} +```{option} --indent-string={string}, -ind={string} +A string of spaces or tabs that is placed for each indent level. + +**Default**: ` ` + +``` + +```{option} --inline-simple-lambdas={bool}, -isl={bool} Remove braces on simple, one line, lambda expressions. **Default**: `1` ``` -```{option} -jpr={value} +```{option} --jad-style-parameter-naming={bool}, -jpr={bool} Use JAD-style variable naming for parameters. **Default**: `0` ``` -```{option} -jrt={value} -Give the decompiler information about the Java runtime, either 1 or current for the current runtime, or a path to another runtime - -``` - -```{option} -jvn={value} +```{option} --jad-style-variable-naming={bool}, -jvn={bool} Use JAD-style variable naming for local variables, instead of var<index>_<version>. **Default**: `0` ``` -```{option} -lac={value} -Decompile lambda expressions as anonymous classes. +```{option} --keep-literals={bool}, -lit={bool} +Keep NaN, infinities, and pi values as is without resugaring them. **Default**: `0` ``` -```{option} -lit={value} -Keep NaN, infinties, and pi values as is without resugaring them. +```{option} --lambda-to-anonymous-class={bool}, -lac={bool} +Decompile lambda expressions as anonymous classes. **Default**: `0` ``` -```{option} -log={value} +```{option} --log-level={string}, -log={string} Logging level. Must be one of: 'info', 'debug', 'warn', 'error'. **Default**: `INFO` ``` -```{option} -mpm={value} +```{option} --max-time-per-method={int}, -mpm={int} Maximum time in seconds to process a method. This is deprecated, do not use. **Default**: `0` ``` -```{option} -ner={value} -Integrate returns better in try-catch blocks. +```{option} --new-line-separator={bool}, -nls={bool} +Use \n instead of \r\n for new lines. Deprecated, do not use. **Default**: `1` ``` -```{option} -nls={value} -Character that seperates lines in the decompiled output. - -**Default**: `1` - -``` - -```{option} -nns={value} -Treat some known structures as synthetic even when not explicitly set. - -**Default**: `0` - -``` - -```{option} -ovr={value} +```{option} --override-annotation={bool}, -ovr={bool} Display override annotations for methods known to the decompiler. **Default**: `1` ``` -```{option} -pam={value} +```{option} --pattern-matching={bool}, -pam={bool} Decompile with if and switch pattern matching enabled. **Default**: `1` ``` -```{option} -pll={value} +```{option} --preferred-line-length={int}, -pll={int} Max line length before formatting is applied. **Default**: `160` ``` -```{option} -rbr={value} +```{option} --remove-bridge={bool}, -rbr={bool} Removes any methods that are marked as bridge from the decompiled output. **Default**: `1` ``` -```{option} -ren={value} -Rename classes, fields, and methods with a number suffix to help in deobfuscation. +```{option} --remove-empty-try-catch={bool}, -rer={bool} +Remove try-catch blocks with no code. -**Default**: `0` +**Default**: `1` ``` -```{option} -rer={value} -Remove try-catch blocks with no code. +```{option} --remove-getclass={bool}, -rgn={bool} +Remove synthetic getClass() calls created by code such as 'obj.new Inner()'. **Default**: `1` ``` -```{option} -rgn={value} -obj.new Inner() or calling invoking a method on a method reference will create a synthetic getClass() call. This removes it. +```{option} --remove-imports={bool}, -rim={bool} +Remove import statements from the decompiled code -**Default**: `1` +**Default**: `0` ``` -```{option} -rsy={value} +```{option} --remove-synthetic={bool}, -rsy={bool} Removes any methods and fields that are marked as synthetic from the decompiled output. **Default**: `1` ``` -```{option} -sef={value} -Skip copying non-class files from the input folder or file to the output +```{option} --rename-members={bool}, -ren={bool} +Rename classes, fields, and methods with a number suffix to help in deobfuscation. **Default**: `0` ``` -```{option} -sfc={value} -Add debug comments showing the class SourceFile attribute if present. +```{option} --show-hidden-statements={bool}, -shs={bool} +Display hidden code blocks for debugging purposes. **Default**: `0` ``` -```{option} -shs={value} -Display code blocks hidden, for debugging purposes +```{option} --simplify-stack={bool}, -ssp={bool} +Simplify variables across stack bounds to resugar complex statements. -**Default**: `0` +**Default**: `1` ``` -```{option} -ssp={value} -Simplify variables across stack bounds to resugar complex statements. +```{option} --skip-extra-files={bool}, -sef={bool} +Skip copying non-class files from the input folder or file to the output -**Default**: `1` +**Default**: `0` ``` -```{option} -swe={value} -Decompile switch expressions in modern Java class files. +```{option} --sourcefile-comments={bool}, -sfc={bool} +Add debug comments showing the class SourceFile attribute if present. -**Default**: `1` +**Default**: `0` ``` -```{option} -tco={value} -Tries to collapse if statements that have a ternary in their condition. +```{option} --synthetic-not-set={bool}, -nns={bool} +Treat some known structures as synthetic even when not explicitly set. -**Default**: `1` +**Default**: `0` ``` -```{option} -tcs={value} +```{option} --ternary-constant-simplification={bool}, -tcs={bool} Fold branches of ternary expressions that have boolean true and false constants. **Default**: `0` ``` -```{option} -thr={value} +```{option} --ternary-in-if={bool}, -tco={bool} +Tries to collapse if statements that have a ternary in their condition. + +**Default**: `1` + +``` + +```{option} --thread-count={int}, -thr={int} How many threads to use to decompile. **Default**: `2` ``` -```{option} -tlf={value} -Code with a while loop inside of a try-catch block sometimes is malformed, this fixes it. +```{option} --try-loop-fix={bool}, -tlf={bool} +Fixes rare cases of malformed decompilation when try blocks are found inside of while loops **Default**: `1` ``` -```{option} -udv={value} -Use LVT names for local variables and parameters instead of var<index>_<version>. +```{option} --undefined-as-object={bool}, -uto={bool} +Treat nameless types as java.lang.Object. **Default**: `1` ``` -```{option} -ump={value} -Use method parameter names, as given in the MethodParameters attribute. +```{option} --use-lvt-names={bool}, -udv={bool} +Use LVT names for local variables and parameters instead of var<index>_<version>. **Default**: `1` ``` -```{option} -urc={value} -Path to a class that implements IIdentifierRenamer. +```{option} --use-method-parameters={bool}, -ump={bool} +Use method parameter names, as given in the MethodParameters attribute. -``` +**Default**: `1` -```{option} -uto={value} -Treat nameless types as java.lang.Object. +``` -**Default**: `1` +```{option} --user-renamer-class={string}, -urc={string} +Path to a class that implements IIdentifierRenamer. ``` -```{option} -vac={value} +```{option} --verify-anonymous-classes={bool}, -vac={bool} Verify that anonymous classes are local. **Default**: `0` ``` -```{option} -vvm={value} -Double checks to make sure the validity of variable merges. If you are having strange recompilation issues, this is a good place to start. +```{option} --verify-merges={bool}, -vvm={bool} +Tries harder to verify the validity of variable merges. If there are strange variable recompilation issues, this is a good place to start. **Default**: `0` ``` -```{option} -win={value} +```{option} --warn-inconsistent-inner-attributes={bool}, -win={bool} Warn about inconsistent inner class attributes **Default**: `1` diff --git a/vineflower-version b/vineflower-version index 8fdcf38..8c29cb4 100644 --- a/vineflower-version +++ b/vineflower-version @@ -1 +1 @@ -1.9.2 +1.10.0-SNAPSHOT