CLI/Output: Added "tree" layout option

This commit is contained in:
Katy Coe
2020-01-18 23:15:00 +01:00
parent c144e361c6
commit 3f00d2a3ad
3 changed files with 20 additions and 8 deletions

View File

@@ -39,13 +39,13 @@ namespace Il2CppInspector
})]
public IEnumerable<string> ExcludedNamespaces { get; set; }
[Option('l', "layout", Required = false, HelpText = "Partitioning of C# output ('single' = single file, 'namespace' = one file per namespace, 'assembly' = one file per assembly, 'class' = one file per class)", Default = "single")]
[Option('l', "layout", Required = false, HelpText = "Partitioning of C# output ('single' = single file, 'namespace' = one file per namespace in folders, 'assembly' = one file per assembly, 'class' = one file per class in namespace folders, 'tree' = one file per class in assembly and namespace folders)", Default = "single")]
public string LayoutSchema { get; set; }
[Option('s', "sort", Required = false, HelpText = "Sort order of type definitions in C# output ('index' = by type definition index, 'name' = by type name). No effect when using file-per-class layout", Default = "index")]
[Option('s', "sort", Required = false, HelpText = "Sort order of type definitions in C# output ('index' = by type definition index, 'name' = by type name). No effect when using file-per-class or tree layout", Default = "index")]
public string SortOrder { get; set; }
[Option('f', "flatten", Required = false, HelpText = "Flatten the namespace hierarchy into a single folder rather than using per-namespace subfolders. Only used when layout is per-namespace or per-class")]
[Option('f', "flatten", Required = false, HelpText = "Flatten the namespace hierarchy into a single folder rather than using per-namespace subfolders. Only used when layout is per-namespace or per-class. Ignored for tree layout")]
public bool FlattenHierarchy { get; set; }
[Option('n', "suppress-metadata", Required = false, HelpText = "Diff tidying: suppress method pointers, field offsets and type indices from C# output. Useful for comparing two versions of a binary for changes with a diff tool")]
@@ -152,6 +152,10 @@ namespace Il2CppInspector
case ("class", _):
writer.WriteFilesByClass(csOut, options.FlattenHierarchy);
break;
case ("tree", _):
writer.WriteFilesByClassTree(csOut);
break;
}
// IDA Python script output