Fix rename failure reason handling
This commit is contained in:
parent
2ea961ee5b
commit
ba71021665
@ -14,8 +14,16 @@ public enum EFailureReason
|
||||
HasAttribute,
|
||||
IsAttribute,
|
||||
Constructor,
|
||||
HasMethods,
|
||||
HasFields,
|
||||
HasProperties,
|
||||
HasNestedTypes,
|
||||
MethodsInclude,
|
||||
MethodsExclude,
|
||||
MethodsCount,
|
||||
FieldsInclude,
|
||||
FieldsExclude,
|
||||
FieldsCount,
|
||||
PropertiesInclude,
|
||||
PropertiesExclude,
|
||||
PropertiesCount,
|
||||
NestedTypeInclude,
|
||||
NestedTypeExclude,
|
||||
NestedTypeCount,
|
||||
}
|
@ -31,7 +31,7 @@ public class Remapper
|
||||
{
|
||||
Logger.Log($"Finding best match for {remap.NewTypeName}...", ConsoleColor.Gray);
|
||||
|
||||
HandleMapping(remap);
|
||||
ScoreMapping(remap);
|
||||
}
|
||||
|
||||
ChooseBestMatches();
|
||||
@ -74,11 +74,11 @@ public class Remapper
|
||||
/// Loop over all types in the assembly and score them
|
||||
/// </summary>
|
||||
/// <param name="mapping">Mapping to score</param>
|
||||
private void HandleMapping(RemapModel mapping)
|
||||
public void ScoreMapping(RemapModel mapping)
|
||||
{
|
||||
foreach (var type in DataProvider.ModuleDefinition.Types)
|
||||
{
|
||||
var _ = FindMatch(type, mapping);
|
||||
FindMatch(type, mapping);
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,13 +89,13 @@ public class Remapper
|
||||
/// <param name="remap">Remap to check against</param>
|
||||
/// <param name="parentTypeName"></param>
|
||||
/// <returns>EMatchResult</returns>
|
||||
private EMatchResult FindMatch(TypeDefinition type, RemapModel remap)
|
||||
private void FindMatch(TypeDefinition type, RemapModel remap)
|
||||
{
|
||||
// Handle Direct Remaps by strict naming first bypasses everything else
|
||||
if (remap.UseForceRename)
|
||||
{
|
||||
HandleByDirectName(type, remap);
|
||||
return EMatchResult.HandleDirect;
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var nestedType in type.NestedTypes)
|
||||
@ -132,7 +132,8 @@ public class Remapper
|
||||
|
||||
if (NoMatch == EMatchResult.NoMatch)
|
||||
{
|
||||
return NoMatch;
|
||||
remap.FailureReason = score.FailureReason;
|
||||
return;
|
||||
}
|
||||
|
||||
var match = matches.Where(x => x.Equals(EMatchResult.Match)).Any();
|
||||
@ -145,10 +146,7 @@ public class Remapper
|
||||
remap.Succeeded = true;
|
||||
remap.FailureReason = EFailureReason.None;
|
||||
score.AddScoreToResult();
|
||||
return EMatchResult.Match;
|
||||
}
|
||||
|
||||
return EMatchResult.Disabled;
|
||||
}
|
||||
|
||||
private void HandleByDirectName(TypeDefinition type, RemapModel remap)
|
||||
|
@ -20,9 +20,10 @@ internal static class Fields
|
||||
|
||||
var matches = type.Fields
|
||||
.Where(field => parms.IncludeFields.Contains(field.Name));
|
||||
|
||||
score.Score += matches.Count();
|
||||
|
||||
score.FailureReason = matches.Any() ? EFailureReason.None : EFailureReason.FieldsInclude;
|
||||
|
||||
return matches.Any()
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
@ -45,6 +46,8 @@ internal static class Fields
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.FieldsExclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.NoMatch
|
||||
: EMatchResult.Match;
|
||||
@ -65,6 +68,8 @@ internal static class Fields
|
||||
|
||||
if (match) { score.Score++; }
|
||||
|
||||
score.FailureReason = match ? EFailureReason.None : EFailureReason.FieldsCount;
|
||||
|
||||
return match
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
|
@ -24,6 +24,8 @@ internal static class Methods
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.MethodsInclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
@ -46,6 +48,8 @@ internal static class Methods
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.MethodsExclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.NoMatch
|
||||
: EMatchResult.Match;
|
||||
@ -67,6 +71,8 @@ internal static class Methods
|
||||
|
||||
if (match) { score.Score++; }
|
||||
|
||||
score.FailureReason = match ? EFailureReason.None : EFailureReason.MethodsCount;
|
||||
|
||||
return match
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
|
@ -14,9 +14,10 @@ internal class NestedTypes
|
||||
var matches = type.NestedTypes
|
||||
.Where(nt => parms.IncludeNestedTypes.Contains(nt.Name))
|
||||
.Count();
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.NestedTypeInclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
@ -32,6 +33,8 @@ internal class NestedTypes
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.NestedTypeExclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.NoMatch
|
||||
: EMatchResult.Match;
|
||||
@ -45,6 +48,8 @@ internal class NestedTypes
|
||||
|
||||
if (match) { score.Score++; }
|
||||
|
||||
score.FailureReason = match ? EFailureReason.None : EFailureReason.NestedTypeCount;
|
||||
|
||||
return match
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
|
@ -14,9 +14,10 @@ namespace AssemblyRemapper.Remapper.Search
|
||||
var matches = type.Properties
|
||||
.Where(property => parms.IncludeProperties.Contains(property.Name))
|
||||
.Count();
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.PropertiesInclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
@ -32,6 +33,8 @@ namespace AssemblyRemapper.Remapper.Search
|
||||
|
||||
score.Score += matches;
|
||||
|
||||
score.FailureReason = matches > 0 ? EFailureReason.None : EFailureReason.PropertiesExclude;
|
||||
|
||||
return matches > 0
|
||||
? EMatchResult.NoMatch
|
||||
: EMatchResult.Match;
|
||||
@ -45,6 +48,8 @@ namespace AssemblyRemapper.Remapper.Search
|
||||
|
||||
if (match) { score.Score++; }
|
||||
|
||||
score.FailureReason = match ? EFailureReason.None : EFailureReason.PropertiesCount;
|
||||
|
||||
return match
|
||||
? EMatchResult.Match
|
||||
: EMatchResult.NoMatch;
|
||||
|
@ -18,6 +18,7 @@ internal static class TypeDefExtensions
|
||||
// Interfaces cannot be abstract, and abstract cannot be static
|
||||
if (type.IsInterface || type.GetStaticConstructor() is not null)
|
||||
{
|
||||
score.FailureReason = EFailureReason.IsAbstract;
|
||||
return EMatchResult.NoMatch;
|
||||
}
|
||||
|
||||
@ -58,6 +59,9 @@ internal static class TypeDefExtensions
|
||||
if (type.IsNested == parms.IsNested)
|
||||
{
|
||||
score.Score++;
|
||||
Logger.Log($"Match {type.Name}");
|
||||
Logger.Log($"Match {parms.IsNested}");
|
||||
Logger.Log($"type: {type.IsNested} \n");
|
||||
return EMatchResult.Match;
|
||||
}
|
||||
|
||||
@ -102,6 +106,7 @@ internal static class TypeDefExtensions
|
||||
|
||||
if (type.BaseType?.Name == parms.IgnoreBaseClass)
|
||||
{
|
||||
score.FailureReason = EFailureReason.IsDerived;
|
||||
return EMatchResult.NoMatch;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ namespace AssemblyRemapperGUI
|
||||
}
|
||||
};
|
||||
|
||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap));
|
||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap, this));
|
||||
DataProvider.Remaps.Add(remap);
|
||||
ResetAll();
|
||||
}
|
||||
@ -99,6 +99,8 @@ namespace AssemblyRemapperGUI
|
||||
{
|
||||
if (Remapper.IsRunning) { return; }
|
||||
|
||||
Console.Clear();
|
||||
|
||||
Remapper.InitializeRemap();
|
||||
}
|
||||
|
||||
@ -135,7 +137,7 @@ namespace AssemblyRemapperGUI
|
||||
|
||||
foreach (var remap in DataProvider.Remaps)
|
||||
{
|
||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap));
|
||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap, this));
|
||||
}
|
||||
}
|
||||
|
||||
@ -348,7 +350,7 @@ namespace AssemblyRemapperGUI
|
||||
|
||||
foreach (var remap in DataProvider.Remaps)
|
||||
{
|
||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap));
|
||||
RemapTreeView.Nodes.Add(GUI.GenerateTreeNode(remap, this));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using AssemblyRemapper.Models;
|
||||
using AssemblyRemapperGUI;
|
||||
|
||||
namespace RemapperGUI.Utils;
|
||||
|
||||
@ -59,7 +60,7 @@ internal static class GUI
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public static TreeNode GenerateTreeNode(RemapModel model)
|
||||
public static TreeNode GenerateTreeNode(RemapModel model, AssemblyToolGUI gui)
|
||||
{
|
||||
var isPublic = model.SearchParams.IsPublic == null ? null : model.SearchParams.IsPublic;
|
||||
var isAbstract = model.SearchParams.IsAbstract == null ? null : model.SearchParams.IsAbstract;
|
||||
|
Loading…
x
Reference in New Issue
Block a user