Renamer changes - improvements
This commit is contained in:
parent
802bacadce
commit
c24a5683cd
@ -355,12 +355,7 @@ public class ReCodeItAutoMapper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Log($"-------------------------------RESULT-----------------------------------", ConsoleColor.Yellow);
|
|
||||||
Logger.Log($"Found {MappingPairs.Count()} automatic remaps", ConsoleColor.Yellow);
|
|
||||||
Logger.Log($"Renamed {TotalFieldRenameCount} fields", ConsoleColor.Yellow);
|
|
||||||
Logger.Log($"Renamed {TotalPropertyRenameCount} properties", ConsoleColor.Yellow);
|
|
||||||
Logger.Log($"Failed to rename: {FailureCount} mapping pairs", ConsoleColor.Yellow);
|
|
||||||
Logger.Log($"------------------------------------------------------------------------", ConsoleColor.Yellow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -384,6 +379,15 @@ public class ReCodeItAutoMapper
|
|||||||
|
|
||||||
private void WriteChanges()
|
private void WriteChanges()
|
||||||
{
|
{
|
||||||
|
var path = DataProvider.WriteAssemblyDefinition();
|
||||||
|
|
||||||
|
Logger.Log($"-------------------------------RESULT-----------------------------------", ConsoleColor.Green);
|
||||||
|
Logger.Log($"Complete: Assembly written to `{path}`", ConsoleColor.Green);
|
||||||
|
Logger.Log($"Found {MappingPairs.Count()} automatic remaps", ConsoleColor.Green);
|
||||||
|
Logger.Log($"Renamed {TotalFieldRenameCount} fields", ConsoleColor.Green);
|
||||||
|
Logger.Log($"Renamed {TotalPropertyRenameCount} properties", ConsoleColor.Green);
|
||||||
|
Logger.Log($"Failed to rename: {FailureCount} mapping pairs", ConsoleColor.Green);
|
||||||
|
Logger.Log($"------------------------------------------------------------------------", ConsoleColor.Green);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -236,20 +236,12 @@ public class ReCodeItRemapper
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void WriteAssembly()
|
private void WriteAssembly()
|
||||||
{
|
{
|
||||||
var filename = Path.GetFileNameWithoutExtension(DataProvider.Settings.AppSettings.AssemblyPath);
|
var path = DataProvider.WriteAssemblyDefinition(true);
|
||||||
var strippedPath = Path.GetDirectoryName(filename);
|
|
||||||
|
|
||||||
filename = $"{filename}-Remapped.dll";
|
|
||||||
|
|
||||||
var remappedPath = Path.Combine(strippedPath, filename);
|
|
||||||
|
|
||||||
DataProvider.AssemblyDefinition.Write(remappedPath);
|
|
||||||
DataProvider.UpdateMapping();
|
|
||||||
|
|
||||||
Logger.Log("-----------------------------------------------", ConsoleColor.Green);
|
Logger.Log("-----------------------------------------------", ConsoleColor.Green);
|
||||||
Logger.Log($"Complete: Assembly written to `{remappedPath}`", ConsoleColor.Green);
|
Logger.Log($"Complete: Assembly written to `{path}`", ConsoleColor.Green);
|
||||||
Logger.Log("Original type names updated on mapping file.", ConsoleColor.Green);
|
Logger.Log("Original type names updated on mapping file.", ConsoleColor.Green);
|
||||||
Logger.Log($"Remap took {Stopwatch.Elapsed.TotalSeconds:F0} seconds", ConsoleColor.Green);
|
Logger.Log($"Remap took {Stopwatch.Elapsed.TotalSeconds:F1} seconds", ConsoleColor.Green);
|
||||||
Logger.Log("-----------------------------------------------", ConsoleColor.Green);
|
Logger.Log("-----------------------------------------------", ConsoleColor.Green);
|
||||||
|
|
||||||
Reset();
|
Reset();
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
using Mono.Collections.Generic;
|
using Mono.Collections.Generic;
|
||||||
using ReCodeIt.Models;
|
using ReCodeIt.Models;
|
||||||
using ReCodeIt.Utils;
|
using ReCodeIt.Utils;
|
||||||
|
using ReCodeItLib.Utils;
|
||||||
|
|
||||||
namespace ReCodeIt.ReMapper;
|
namespace ReCodeIt.ReMapper;
|
||||||
|
|
||||||
internal static class RenameHelper
|
internal static class RenameHelper
|
||||||
{
|
{
|
||||||
|
private static List<string> TokensToMatch => DataProvider.Settings.AutoMapper.TokensToMatch;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Only used by the manual remapper, should probably be removed
|
/// Only used by the manual remapper, should probably be removed
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -52,13 +55,19 @@ internal static class RenameHelper
|
|||||||
{
|
{
|
||||||
foreach (var type in typesToCheck)
|
foreach (var type in typesToCheck)
|
||||||
{
|
{
|
||||||
|
var fields = type.Fields
|
||||||
|
.Where(field => field.Name.IsFieldOrPropNameInList(TokensToMatch));
|
||||||
|
|
||||||
|
if (!fields.Any()) { continue; }
|
||||||
|
|
||||||
int fieldCount = 0;
|
int fieldCount = 0;
|
||||||
foreach (var field in type.Fields)
|
foreach (var field in fields)
|
||||||
{
|
{
|
||||||
if (field.FieldType.Name == oldTypeName)
|
if (field.FieldType.Name == oldTypeName)
|
||||||
{
|
{
|
||||||
var newFieldName = GetNewFieldName(newTypeName, field.IsPrivate, fieldCount);
|
var newFieldName = GetNewFieldName(newTypeName, field.IsPrivate, fieldCount);
|
||||||
|
|
||||||
|
// Dont need to do extra work
|
||||||
if (field.Name == newFieldName) { continue; }
|
if (field.Name == newFieldName) { continue; }
|
||||||
|
|
||||||
Logger.Log($"Renaming original field type name: `{field.FieldType.Name}` with name `{field.Name}` to `{newFieldName}`", ConsoleColor.Green);
|
Logger.Log($"Renaming original field type name: `{field.FieldType.Name}` with name `{field.Name}` to `{newFieldName}`", ConsoleColor.Green);
|
||||||
@ -94,16 +103,23 @@ internal static class RenameHelper
|
|||||||
{
|
{
|
||||||
foreach (var type in typesToCheck)
|
foreach (var type in typesToCheck)
|
||||||
{
|
{
|
||||||
int propertyCount = 0;
|
var properties = type.Properties
|
||||||
|
.Where(prop => prop.Name.IsFieldOrPropNameInList(TokensToMatch));
|
||||||
|
|
||||||
foreach (var property in type.Properties)
|
if (!properties.Any()) { continue; }
|
||||||
|
|
||||||
|
int propertyCount = 0;
|
||||||
|
foreach (var property in properties)
|
||||||
{
|
{
|
||||||
if (property.PropertyType.Name == oldTypeName)
|
if (property.PropertyType.Name == oldTypeName)
|
||||||
{
|
{
|
||||||
var newName = GetNewPropertyName(newTypeName, propertyCount);
|
var newPropertyName = GetNewPropertyName(newTypeName, propertyCount);
|
||||||
|
|
||||||
Logger.Log($"Renaming original property type name: `{property.PropertyType.Name}` with name `{property.Name}` to `{newName}`", ConsoleColor.Green);
|
// Dont need to do extra work
|
||||||
property.Name = newName;
|
if (property.Name == newPropertyName) { continue; }
|
||||||
|
|
||||||
|
Logger.Log($"Renaming original property type name: `{property.PropertyType.Name}` with name `{property.Name}` to `{newPropertyName}`", ConsoleColor.Green);
|
||||||
|
property.Name = newPropertyName;
|
||||||
propertyCount++;
|
propertyCount++;
|
||||||
overAllCount++;
|
overAllCount++;
|
||||||
}
|
}
|
||||||
|
@ -174,4 +174,23 @@ public static class DataProvider
|
|||||||
|
|
||||||
Logger.Log($"Module `{fileName}` not found in assembly {fileName}");
|
Logger.Log($"Module `{fileName}` not found in assembly {fileName}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string WriteAssemblyDefinition(bool updateMapping = false)
|
||||||
|
{
|
||||||
|
var filename = Path.GetFileNameWithoutExtension(Settings.AppSettings.AssemblyPath);
|
||||||
|
var strippedPath = Path.GetDirectoryName(filename);
|
||||||
|
|
||||||
|
filename = $"{filename}-Remapped.dll";
|
||||||
|
|
||||||
|
var remappedPath = Path.Combine(strippedPath, filename);
|
||||||
|
|
||||||
|
AssemblyDefinition.Write(remappedPath);
|
||||||
|
|
||||||
|
if (updateMapping)
|
||||||
|
{
|
||||||
|
UpdateMapping();
|
||||||
|
}
|
||||||
|
|
||||||
|
return remappedPath;
|
||||||
|
}
|
||||||
}
|
}
|
@ -38,4 +38,23 @@ internal static class StringExtentions
|
|||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Does the property or field name exist in a given list, this applies prefixes and handles
|
||||||
|
/// capitalization.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="str"></param>
|
||||||
|
/// <param name="list"></param>
|
||||||
|
/// <returns>True if it in the list</returns>
|
||||||
|
public static bool IsFieldOrPropNameInList(this string str, List<string> list)
|
||||||
|
{
|
||||||
|
if (str.Trim().ElementAt(0) == '_')
|
||||||
|
{
|
||||||
|
str = str.Replace("_", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = list.Any(item => str.StartsWith(item, StringComparison.CurrentCultureIgnoreCase));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user