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>
|
||||
@ -384,6 +379,15 @@ public class ReCodeItAutoMapper
|
||||
|
||||
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>
|
||||
|
@ -236,20 +236,12 @@ public class ReCodeItRemapper
|
||||
/// </summary>
|
||||
private void WriteAssembly()
|
||||
{
|
||||
var filename = Path.GetFileNameWithoutExtension(DataProvider.Settings.AppSettings.AssemblyPath);
|
||||
var strippedPath = Path.GetDirectoryName(filename);
|
||||
|
||||
filename = $"{filename}-Remapped.dll";
|
||||
|
||||
var remappedPath = Path.Combine(strippedPath, filename);
|
||||
|
||||
DataProvider.AssemblyDefinition.Write(remappedPath);
|
||||
DataProvider.UpdateMapping();
|
||||
var path = DataProvider.WriteAssemblyDefinition(true);
|
||||
|
||||
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($"Remap took {Stopwatch.Elapsed.TotalSeconds:F0} seconds", ConsoleColor.Green);
|
||||
Logger.Log($"Remap took {Stopwatch.Elapsed.TotalSeconds:F1} seconds", ConsoleColor.Green);
|
||||
Logger.Log("-----------------------------------------------", ConsoleColor.Green);
|
||||
|
||||
Reset();
|
||||
|
@ -2,11 +2,14 @@
|
||||
using Mono.Collections.Generic;
|
||||
using ReCodeIt.Models;
|
||||
using ReCodeIt.Utils;
|
||||
using ReCodeItLib.Utils;
|
||||
|
||||
namespace ReCodeIt.ReMapper;
|
||||
|
||||
internal static class RenameHelper
|
||||
{
|
||||
private static List<string> TokensToMatch => DataProvider.Settings.AutoMapper.TokensToMatch;
|
||||
|
||||
/// <summary>
|
||||
/// Only used by the manual remapper, should probably be removed
|
||||
/// </summary>
|
||||
@ -52,13 +55,19 @@ internal static class RenameHelper
|
||||
{
|
||||
foreach (var type in typesToCheck)
|
||||
{
|
||||
var fields = type.Fields
|
||||
.Where(field => field.Name.IsFieldOrPropNameInList(TokensToMatch));
|
||||
|
||||
if (!fields.Any()) { continue; }
|
||||
|
||||
int fieldCount = 0;
|
||||
foreach (var field in type.Fields)
|
||||
foreach (var field in fields)
|
||||
{
|
||||
if (field.FieldType.Name == oldTypeName)
|
||||
{
|
||||
var newFieldName = GetNewFieldName(newTypeName, field.IsPrivate, fieldCount);
|
||||
|
||||
// Dont need to do extra work
|
||||
if (field.Name == newFieldName) { continue; }
|
||||
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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);
|
||||
property.Name = newName;
|
||||
// Dont need to do extra work
|
||||
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++;
|
||||
overAllCount++;
|
||||
}
|
||||
|
@ -174,4 +174,23 @@ public static class DataProvider
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/// <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