diff --git a/.gitignore b/.gitignore index 9491a2f..8afdcb6 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,6 @@ x86/ bld/ [Bb]in/ [Oo]bj/ -[Oo]ut/ [Ll]og/ [Ll]ogs/ @@ -63,6 +62,9 @@ project.lock.json project.fragment.lock.json artifacts/ +# Tye +.tye/ + # ASP.NET Scaffolding ScaffoldingReadMe.txt @@ -360,4 +362,93 @@ MigrationBackup/ .ionide/ # Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +FodyWeavers.xsd + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# Mac bundle stuff +*.dmg +*.app + +# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# JetBrains Rider +.idea/ +*.sln.iml + +## +## Visual Studio Code +## +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..5d8722e --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,6 @@ + + + enable + 11.0.2 + + diff --git a/RecodeIt.sln b/RecodeIt.sln index 8f38c79..1753da4 100644 --- a/RecodeIt.sln +++ b/RecodeIt.sln @@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34728.123 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReCodeItConsole", "RecodeItConsole\ReCodeItConsole.csproj", "{2DFEF08F-6136-44F6-BF0D-93A2E9F9270C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReCodeItGUI", "RecodeItGUI\ReCodeItGUI.csproj", "{7C4A62CE-8072-454F-9D95-6CB4D837F485}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReCodeItLib", "RecodeItLib\ReCodeItLib.csproj", "{FDA58DB6-E114-4FE0-AAF1-C3DEE44AEF99}" @@ -15,10 +13,6 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2DFEF08F-6136-44F6-BF0D-93A2E9F9270C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DFEF08F-6136-44F6-BF0D-93A2E9F9270C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DFEF08F-6136-44F6-BF0D-93A2E9F9270C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DFEF08F-6136-44F6-BF0D-93A2E9F9270C}.Release|Any CPU.Build.0 = Release|Any CPU {7C4A62CE-8072-454F-9D95-6CB4D837F485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7C4A62CE-8072-454F-9D95-6CB4D837F485}.Debug|Any CPU.Build.0 = Debug|Any CPU {7C4A62CE-8072-454F-9D95-6CB4D837F485}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/RecodeItConsole/Commands/CommandProcessor.cs b/RecodeItConsole/Commands/CommandProcessor.cs deleted file mode 100644 index 0c9fd89..0000000 --- a/RecodeItConsole/Commands/CommandProcessor.cs +++ /dev/null @@ -1,53 +0,0 @@ -using ReCodeIt.Utils; - -namespace ReCodeIt.Commands -{ - internal class CommandProcessor - { - public CommandProcessor() - { } - - public void CommandLoop() - { - ShowStartText(); - - while (true) - { - var input = Console.ReadLine(); - ProcessCommand(input); - } - } - - private void ProcessCommand(string command) - { - if (command == "remap" || command == "Remap") - { - var remapper = new ReMapper.ReCodeItRemapper(); - - Logger.ClearLog(); - Console.Clear(); - ShowStartText(); - - DataProvider.LoadMappingFile(); - DataProvider.LoadAssemblyDefinition(); - - remapper.InitializeRemap(); - } - - if (command == "clear") - { - Console.Clear(); - ShowStartText(); - } - } - - private void ShowStartText() - { - Logger.Log($"-----------------------------------------------------------------", ConsoleColor.Green); - Logger.Log($"Cj's Assembly Tool", ConsoleColor.Green); - Logger.Log($"Version 0.1.0", ConsoleColor.Green); - Logger.Log($"Available Commands: `remap` `clear`", ConsoleColor.Green); - Logger.Log($"-----------------------------------------------------------------", ConsoleColor.Green); - } - } -} \ No newline at end of file diff --git a/RecodeItConsole/Program.cs b/RecodeItConsole/Program.cs deleted file mode 100644 index 3751555..0000000 --- a/RecodeItConsole/Program.cs +++ /dev/null @@ -1,2 +0,0 @@ -// See https://aka.ms/new-console-template for more information -Console.WriteLine("Hello, World!"); diff --git a/RecodeItConsole/ReCodeItConsole.csproj b/RecodeItConsole/ReCodeItConsole.csproj deleted file mode 100644 index 09e3992..0000000 --- a/RecodeItConsole/ReCodeItConsole.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - Exe - net8.0 - enable - enable - - - - - - - diff --git a/RecodeItGUI/GUI/Main.Designer.cs b/RecodeItGUI/GUI/Main.Designer.cs index 343161f..0c6ff8c 100644 --- a/RecodeItGUI/GUI/Main.Designer.cs +++ b/RecodeItGUI/GUI/Main.Designer.cs @@ -28,8 +28,6 @@ partial class ReCodeItForm /// private void InitializeComponent() { - components = new System.ComponentModel.Container(); - bindingSource1 = new BindingSource(components); TabPageRemapper = new TabPage(); RemapTreeView = new TreeView(); groupBox1 = new GroupBox(); @@ -102,13 +100,19 @@ partial class ReCodeItForm MethodCountEnabled = new CheckBox(); IsSealedUpDown = new DomainUpDown(); TabControlMain = new TabControl(); - tabPage5 = new TabPage(); + AutoMapperTab = new TabPage(); + label2 = new Label(); + AutoMapperRequiredMatchesUpDown = new NumericUpDown(); + treeView1 = new TreeView(); + AutoMapperExcludeTextField = new TextBox(); + AutoMapperExcludeRemoveButton = new Button(); + AutoMapperExcludeAddButton = new Button(); + AutoMapperExcludeBox = new ListBox(); + SettingsTab = new TabPage(); groupBox3 = new GroupBox(); label1 = new Label(); MaxMatchCountUpDown = new NumericUpDown(); groupBox4 = new GroupBox(); - label2 = new Label(); - AutoMapperRequiredMatchesUpDown = new NumericUpDown(); groupBox2 = new GroupBox(); MappingChooseButton = new Button(); UnsealCheckbox = new CheckBox(); @@ -122,10 +126,7 @@ partial class ReCodeItForm AssemblyPathTextBox = new TextBox(); SilentModeCheckbox = new CheckBox(); DebugLoggingCheckbox = new CheckBox(); - colorDialog1 = new ColorDialog(); - openFileDialog1 = new OpenFileDialog(); - fileSystemWatcher1 = new FileSystemWatcher(); - ((System.ComponentModel.ISupportInitialize)bindingSource1).BeginInit(); + RunAutoRemapButton = new Button(); TabPageRemapper.SuspendLayout(); groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)ConstuctorCountUpDown).BeginInit(); @@ -139,13 +140,12 @@ partial class ReCodeItForm ((System.ComponentModel.ISupportInitialize)MethodCountUpDown).BeginInit(); ((System.ComponentModel.ISupportInitialize)NestedTypeCountUpDown).BeginInit(); TabControlMain.SuspendLayout(); - tabPage5.SuspendLayout(); + AutoMapperTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)AutoMapperRequiredMatchesUpDown).BeginInit(); + SettingsTab.SuspendLayout(); groupBox3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)MaxMatchCountUpDown).BeginInit(); - groupBox4.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)AutoMapperRequiredMatchesUpDown).BeginInit(); groupBox2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)fileSystemWatcher1).BeginInit(); SuspendLayout(); // // TabPageRemapper @@ -162,6 +162,7 @@ partial class ReCodeItForm // // RemapTreeView // + RemapTreeView.BackColor = Color.Gray; RemapTreeView.Location = new Point(781, 20); RemapTreeView.Name = "RemapTreeView"; RemapTreeView.Size = new Size(487, 890); @@ -210,16 +211,18 @@ partial class ReCodeItForm // // EditRemapButton // + EditRemapButton.BackColor = SystemColors.ButtonShadow; EditRemapButton.Location = new Point(580, 145); EditRemapButton.Name = "EditRemapButton"; EditRemapButton.Size = new Size(168, 34); EditRemapButton.TabIndex = 21; EditRemapButton.Text = "Edit Remap"; - EditRemapButton.UseVisualStyleBackColor = true; + EditRemapButton.UseVisualStyleBackColor = false; EditRemapButton.Click += EditRemapButton_Click; // // ConstuctorCountUpDown // + ConstuctorCountUpDown.BackColor = SystemColors.ScrollBar; ConstuctorCountUpDown.Location = new Point(224, 178); ConstuctorCountUpDown.Name = "ConstuctorCountUpDown"; ConstuctorCountUpDown.Size = new Size(55, 31); @@ -237,32 +240,35 @@ partial class ReCodeItForm // // LoadMappingFileButton // + LoadMappingFileButton.BackColor = SystemColors.ButtonShadow; LoadMappingFileButton.Location = new Point(601, 489); LoadMappingFileButton.Name = "LoadMappingFileButton"; LoadMappingFileButton.Size = new Size(168, 34); LoadMappingFileButton.TabIndex = 18; LoadMappingFileButton.Text = "Load Mapping File"; - LoadMappingFileButton.UseVisualStyleBackColor = true; + LoadMappingFileButton.UseVisualStyleBackColor = false; LoadMappingFileButton.Click += LoadMappingFileButton_Click; // // SaveMappingFileButton // + SaveMappingFileButton.BackColor = SystemColors.ButtonShadow; SaveMappingFileButton.Location = new Point(427, 489); SaveMappingFileButton.Name = "SaveMappingFileButton"; SaveMappingFileButton.Size = new Size(168, 34); SaveMappingFileButton.TabIndex = 17; SaveMappingFileButton.Text = "Save Mapping File"; - SaveMappingFileButton.UseVisualStyleBackColor = true; + SaveMappingFileButton.UseVisualStyleBackColor = false; SaveMappingFileButton.Click += SaveMappingFileButton_Click; // // RunRemapButton // + RunRemapButton.BackColor = SystemColors.ButtonShadow; RunRemapButton.Location = new Point(580, 185); RunRemapButton.Name = "RunRemapButton"; RunRemapButton.Size = new Size(168, 34); RunRemapButton.TabIndex = 16; RunRemapButton.Text = "Run Remap"; - RunRemapButton.UseVisualStyleBackColor = true; + RunRemapButton.UseVisualStyleBackColor = false; RunRemapButton.Click += RunRemapButton_Click; // // Inclusions @@ -298,6 +304,7 @@ partial class ReCodeItForm // // ExcludeMethodTextBox // + ExcludeMethodTextBox.BackColor = SystemColors.ScrollBar; ExcludeMethodTextBox.Location = new Point(381, 6); ExcludeMethodTextBox.Name = "ExcludeMethodTextBox"; ExcludeMethodTextBox.PlaceholderText = "Exclude Methods"; @@ -306,6 +313,7 @@ partial class ReCodeItForm // // IncludeMethodTextBox // + IncludeMethodTextBox.BackColor = SystemColors.ScrollBar; IncludeMethodTextBox.Location = new Point(6, 6); IncludeMethodTextBox.Name = "IncludeMethodTextBox"; IncludeMethodTextBox.PlaceholderText = "Include Methods"; @@ -354,6 +362,7 @@ partial class ReCodeItForm // // MethodExcludeBox // + MethodExcludeBox.BackColor = Color.Gray; MethodExcludeBox.FormattingEnabled = true; MethodExcludeBox.ItemHeight = 25; MethodExcludeBox.Location = new Point(381, 43); @@ -363,6 +372,7 @@ partial class ReCodeItForm // // MethodIncludeBox // + MethodIncludeBox.BackColor = Color.Gray; MethodIncludeBox.FormattingEnabled = true; MethodIncludeBox.ItemHeight = 25; MethodIncludeBox.Location = new Point(6, 43); @@ -390,6 +400,7 @@ partial class ReCodeItForm // // FieldsExcludeTextInput // + FieldsExcludeTextInput.BackColor = SystemColors.ScrollBar; FieldsExcludeTextInput.Location = new Point(381, 6); FieldsExcludeTextInput.Name = "FieldsExcludeTextInput"; FieldsExcludeTextInput.PlaceholderText = "Exclude Fields"; @@ -398,6 +409,7 @@ partial class ReCodeItForm // // FieldsIncludeTextInput // + FieldsIncludeTextInput.BackColor = SystemColors.ScrollBar; FieldsIncludeTextInput.Location = new Point(6, 6); FieldsIncludeTextInput.Name = "FieldsIncludeTextInput"; FieldsIncludeTextInput.PlaceholderText = "Include Fields"; @@ -406,46 +418,51 @@ partial class ReCodeItForm // // FieldExcludeRemoveButton // + FieldExcludeRemoveButton.BackColor = SystemColors.ButtonShadow; FieldExcludeRemoveButton.Location = new Point(622, 278); FieldExcludeRemoveButton.Name = "FieldExcludeRemoveButton"; FieldExcludeRemoveButton.Size = new Size(112, 34); FieldExcludeRemoveButton.TabIndex = 25; FieldExcludeRemoveButton.Text = "Remove"; - FieldExcludeRemoveButton.UseVisualStyleBackColor = true; + FieldExcludeRemoveButton.UseVisualStyleBackColor = false; FieldExcludeRemoveButton.Click += FieldExcludeRemoveButton_Click; // // FieldExcludeAddButton // + FieldExcludeAddButton.BackColor = SystemColors.ButtonShadow; FieldExcludeAddButton.Location = new Point(381, 278); FieldExcludeAddButton.Name = "FieldExcludeAddButton"; FieldExcludeAddButton.Size = new Size(112, 34); FieldExcludeAddButton.TabIndex = 24; FieldExcludeAddButton.Text = "Add"; - FieldExcludeAddButton.UseVisualStyleBackColor = true; + FieldExcludeAddButton.UseVisualStyleBackColor = false; FieldExcludeAddButton.Click += FieldExcludeAddButton_Click; // // FieldIncludeRemoveButton // + FieldIncludeRemoveButton.BackColor = SystemColors.ButtonShadow; FieldIncludeRemoveButton.Location = new Point(247, 278); FieldIncludeRemoveButton.Name = "FieldIncludeRemoveButton"; FieldIncludeRemoveButton.Size = new Size(112, 34); FieldIncludeRemoveButton.TabIndex = 23; FieldIncludeRemoveButton.Text = "Remove"; - FieldIncludeRemoveButton.UseVisualStyleBackColor = true; + FieldIncludeRemoveButton.UseVisualStyleBackColor = false; FieldIncludeRemoveButton.Click += FieldIncludeRemoveButton_Click; // // FIeldIncludeAddButton // + FIeldIncludeAddButton.BackColor = SystemColors.ButtonShadow; FIeldIncludeAddButton.Location = new Point(6, 278); FIeldIncludeAddButton.Name = "FIeldIncludeAddButton"; FIeldIncludeAddButton.Size = new Size(112, 34); FIeldIncludeAddButton.TabIndex = 22; FIeldIncludeAddButton.Text = "Add"; - FIeldIncludeAddButton.UseVisualStyleBackColor = true; + FIeldIncludeAddButton.UseVisualStyleBackColor = false; FIeldIncludeAddButton.Click += FIeldIncludeAddButton_Click; // // FieldExcludeBox // + FieldExcludeBox.BackColor = Color.Gray; FieldExcludeBox.FormattingEnabled = true; FieldExcludeBox.ItemHeight = 25; FieldExcludeBox.Location = new Point(382, 43); @@ -455,6 +472,7 @@ partial class ReCodeItForm // // FieldIncludeBox // + FieldIncludeBox.BackColor = Color.Gray; FieldIncludeBox.FormattingEnabled = true; FieldIncludeBox.ItemHeight = 25; FieldIncludeBox.Location = new Point(6, 43); @@ -482,6 +500,7 @@ partial class ReCodeItForm // // PropertiesExcludeTextField // + PropertiesExcludeTextField.BackColor = SystemColors.ScrollBar; PropertiesExcludeTextField.Location = new Point(381, 6); PropertiesExcludeTextField.Name = "PropertiesExcludeTextField"; PropertiesExcludeTextField.PlaceholderText = "Exclude Properties"; @@ -490,6 +509,7 @@ partial class ReCodeItForm // // PropertiesIncludeTextField // + PropertiesIncludeTextField.BackColor = SystemColors.ScrollBar; PropertiesIncludeTextField.Location = new Point(6, 6); PropertiesIncludeTextField.Name = "PropertiesIncludeTextField"; PropertiesIncludeTextField.PlaceholderText = "Include Properties"; @@ -498,46 +518,51 @@ partial class ReCodeItForm // // PropertiesExcludeRemoveButton // + PropertiesExcludeRemoveButton.BackColor = SystemColors.ButtonShadow; PropertiesExcludeRemoveButton.Location = new Point(622, 278); PropertiesExcludeRemoveButton.Name = "PropertiesExcludeRemoveButton"; PropertiesExcludeRemoveButton.Size = new Size(112, 34); PropertiesExcludeRemoveButton.TabIndex = 25; PropertiesExcludeRemoveButton.Text = "Remove"; - PropertiesExcludeRemoveButton.UseVisualStyleBackColor = true; + PropertiesExcludeRemoveButton.UseVisualStyleBackColor = false; PropertiesExcludeRemoveButton.Click += PropertiesExcludeRemoveButton_Click; // // PropertiesExcludeAddButton // + PropertiesExcludeAddButton.BackColor = SystemColors.ButtonShadow; PropertiesExcludeAddButton.Location = new Point(381, 278); PropertiesExcludeAddButton.Name = "PropertiesExcludeAddButton"; PropertiesExcludeAddButton.Size = new Size(112, 34); PropertiesExcludeAddButton.TabIndex = 24; PropertiesExcludeAddButton.Text = "Add"; - PropertiesExcludeAddButton.UseVisualStyleBackColor = true; + PropertiesExcludeAddButton.UseVisualStyleBackColor = false; PropertiesExcludeAddButton.Click += PropertiesExcludeAddButton_Click; // // PropertiesIncludeRemoveButton // + PropertiesIncludeRemoveButton.BackColor = SystemColors.ButtonShadow; PropertiesIncludeRemoveButton.Location = new Point(247, 278); PropertiesIncludeRemoveButton.Name = "PropertiesIncludeRemoveButton"; PropertiesIncludeRemoveButton.Size = new Size(112, 34); PropertiesIncludeRemoveButton.TabIndex = 23; PropertiesIncludeRemoveButton.Text = "Remove"; - PropertiesIncludeRemoveButton.UseVisualStyleBackColor = true; + PropertiesIncludeRemoveButton.UseVisualStyleBackColor = false; PropertiesIncludeRemoveButton.Click += PropertiesIncludeRemoveButton_Click; // // PropertiesIncludeAddButton // + PropertiesIncludeAddButton.BackColor = SystemColors.ButtonShadow; PropertiesIncludeAddButton.Location = new Point(6, 278); PropertiesIncludeAddButton.Name = "PropertiesIncludeAddButton"; PropertiesIncludeAddButton.Size = new Size(112, 34); PropertiesIncludeAddButton.TabIndex = 22; PropertiesIncludeAddButton.Text = "Add"; - PropertiesIncludeAddButton.UseVisualStyleBackColor = true; + PropertiesIncludeAddButton.UseVisualStyleBackColor = false; PropertiesIncludeAddButton.Click += PropertiesIncludeAddButton_Click; // // PropertiesExcludeBox // + PropertiesExcludeBox.BackColor = Color.Gray; PropertiesExcludeBox.FormattingEnabled = true; PropertiesExcludeBox.ItemHeight = 25; PropertiesExcludeBox.Location = new Point(381, 43); @@ -547,6 +572,7 @@ partial class ReCodeItForm // // PropertiesIncludeBox // + PropertiesIncludeBox.BackColor = Color.Gray; PropertiesIncludeBox.FormattingEnabled = true; PropertiesIncludeBox.ItemHeight = 25; PropertiesIncludeBox.Location = new Point(6, 43); @@ -574,6 +600,7 @@ partial class ReCodeItForm // // NestedTypesExcludeTextField // + NestedTypesExcludeTextField.BackColor = SystemColors.ScrollBar; NestedTypesExcludeTextField.Location = new Point(381, 6); NestedTypesExcludeTextField.Name = "NestedTypesExcludeTextField"; NestedTypesExcludeTextField.PlaceholderText = "Exclude Nested Types"; @@ -582,6 +609,7 @@ partial class ReCodeItForm // // NestedTypesIncludeTextField // + NestedTypesIncludeTextField.BackColor = SystemColors.ScrollBar; NestedTypesIncludeTextField.Location = new Point(6, 6); NestedTypesIncludeTextField.Name = "NestedTypesIncludeTextField"; NestedTypesIncludeTextField.PlaceholderText = "Include Nested Types"; @@ -590,46 +618,51 @@ partial class ReCodeItForm // // NestedTypesExcludeRemoveButton // + NestedTypesExcludeRemoveButton.BackColor = SystemColors.ButtonShadow; NestedTypesExcludeRemoveButton.Location = new Point(622, 278); NestedTypesExcludeRemoveButton.Name = "NestedTypesExcludeRemoveButton"; NestedTypesExcludeRemoveButton.Size = new Size(112, 34); NestedTypesExcludeRemoveButton.TabIndex = 25; NestedTypesExcludeRemoveButton.Text = "Remove"; - NestedTypesExcludeRemoveButton.UseVisualStyleBackColor = true; + NestedTypesExcludeRemoveButton.UseVisualStyleBackColor = false; NestedTypesExcludeRemoveButton.Click += NestedTypesExcludeRemoveButton_Click; // // NestedTypesExlcudeAddButton // + NestedTypesExlcudeAddButton.BackColor = SystemColors.ButtonShadow; NestedTypesExlcudeAddButton.Location = new Point(381, 278); NestedTypesExlcudeAddButton.Name = "NestedTypesExlcudeAddButton"; NestedTypesExlcudeAddButton.Size = new Size(112, 34); NestedTypesExlcudeAddButton.TabIndex = 24; NestedTypesExlcudeAddButton.Text = "Add"; - NestedTypesExlcudeAddButton.UseVisualStyleBackColor = true; + NestedTypesExlcudeAddButton.UseVisualStyleBackColor = false; NestedTypesExlcudeAddButton.Click += NestedTypesExlcudeAddButton_Click; // // NestedTypesRemoveButton // + NestedTypesRemoveButton.BackColor = SystemColors.ButtonShadow; NestedTypesRemoveButton.Location = new Point(247, 278); NestedTypesRemoveButton.Name = "NestedTypesRemoveButton"; NestedTypesRemoveButton.Size = new Size(112, 34); NestedTypesRemoveButton.TabIndex = 23; NestedTypesRemoveButton.Text = "Remove"; - NestedTypesRemoveButton.UseVisualStyleBackColor = true; + NestedTypesRemoveButton.UseVisualStyleBackColor = false; NestedTypesRemoveButton.Click += NestedTypesRemoveButton_Click; // // NestedTypesAddButton // + NestedTypesAddButton.BackColor = SystemColors.ButtonShadow; NestedTypesAddButton.Location = new Point(6, 278); NestedTypesAddButton.Name = "NestedTypesAddButton"; NestedTypesAddButton.Size = new Size(112, 34); NestedTypesAddButton.TabIndex = 22; NestedTypesAddButton.Text = "Add"; - NestedTypesAddButton.UseVisualStyleBackColor = true; + NestedTypesAddButton.UseVisualStyleBackColor = false; NestedTypesAddButton.Click += NestedTypesAddButton_Click; // // NestedTypesExcludeBox // + NestedTypesExcludeBox.BackColor = Color.Gray; NestedTypesExcludeBox.FormattingEnabled = true; NestedTypesExcludeBox.ItemHeight = 25; NestedTypesExcludeBox.Location = new Point(381, 43); @@ -639,6 +672,7 @@ partial class ReCodeItForm // // NestedTypesIncludeBox // + NestedTypesIncludeBox.BackColor = Color.Gray; NestedTypesIncludeBox.FormattingEnabled = true; NestedTypesIncludeBox.ItemHeight = 25; NestedTypesIncludeBox.Location = new Point(6, 43); @@ -648,6 +682,7 @@ partial class ReCodeItForm // // NewTypeName // + NewTypeName.BackColor = SystemColors.ScrollBar; NewTypeName.Location = new Point(10, 30); NewTypeName.Name = "NewTypeName"; NewTypeName.PlaceholderText = "New Type Name"; @@ -676,6 +711,7 @@ partial class ReCodeItForm // // IsInterfaceUpDown // + IsInterfaceUpDown.BackColor = SystemColors.ScrollBar; IsInterfaceUpDown.Location = new Point(10, 183); IsInterfaceUpDown.Name = "IsInterfaceUpDown"; IsInterfaceUpDown.Size = new Size(208, 31); @@ -695,6 +731,7 @@ partial class ReCodeItForm // // PropertyCountUpDown // + PropertyCountUpDown.BackColor = SystemColors.ScrollBar; PropertyCountUpDown.Location = new Point(224, 291); PropertyCountUpDown.Name = "PropertyCountUpDown"; PropertyCountUpDown.Size = new Size(55, 31); @@ -702,16 +739,18 @@ partial class ReCodeItForm // // RemoveRemapButton // + RemoveRemapButton.BackColor = SystemColors.ButtonShadow; RemoveRemapButton.Location = new Point(580, 105); RemoveRemapButton.Name = "RemoveRemapButton"; RemoveRemapButton.Size = new Size(168, 34); RemoveRemapButton.TabIndex = 2; RemoveRemapButton.Text = "Remove Remap"; - RemoveRemapButton.UseVisualStyleBackColor = true; + RemoveRemapButton.UseVisualStyleBackColor = false; RemoveRemapButton.Click += RemoveRemapButton_Click; // // FieldCountUpDown // + FieldCountUpDown.BackColor = SystemColors.ScrollBar; FieldCountUpDown.Location = new Point(224, 253); FieldCountUpDown.Name = "FieldCountUpDown"; FieldCountUpDown.Size = new Size(55, 31); @@ -719,6 +758,7 @@ partial class ReCodeItForm // // IsPublicUpDown // + IsPublicUpDown.BackColor = SystemColors.ScrollBar; IsPublicUpDown.Location = new Point(10, 107); IsPublicUpDown.Name = "IsPublicUpDown"; IsPublicUpDown.Size = new Size(208, 31); @@ -738,6 +778,7 @@ partial class ReCodeItForm // // NestedTypeParentName // + NestedTypeParentName.BackColor = SystemColors.ScrollBar; NestedTypeParentName.Location = new Point(224, 106); NestedTypeParentName.Name = "NestedTypeParentName"; NestedTypeParentName.PlaceholderText = "Nested Type Parent Name"; @@ -746,6 +787,7 @@ partial class ReCodeItForm // // MethodCountUpDown // + MethodCountUpDown.BackColor = SystemColors.ScrollBar; MethodCountUpDown.Location = new Point(224, 215); MethodCountUpDown.Name = "MethodCountUpDown"; MethodCountUpDown.Size = new Size(55, 31); @@ -753,6 +795,7 @@ partial class ReCodeItForm // // IsAbstractUpDown // + IsAbstractUpDown.BackColor = SystemColors.ScrollBar; IsAbstractUpDown.Location = new Point(10, 144); IsAbstractUpDown.Name = "IsAbstractUpDown"; IsAbstractUpDown.Size = new Size(208, 31); @@ -762,6 +805,7 @@ partial class ReCodeItForm // // BaseClassIncludeTextFIeld // + BaseClassIncludeTextFIeld.BackColor = SystemColors.ScrollBar; BaseClassIncludeTextFIeld.Location = new Point(224, 67); BaseClassIncludeTextFIeld.Name = "BaseClassIncludeTextFIeld"; BaseClassIncludeTextFIeld.PlaceholderText = "Include Base Class"; @@ -770,6 +814,7 @@ partial class ReCodeItForm // // OriginalTypeName // + OriginalTypeName.BackColor = SystemColors.ScrollBar; OriginalTypeName.Location = new Point(224, 30); OriginalTypeName.Name = "OriginalTypeName"; OriginalTypeName.PlaceholderText = "Original Type Name"; @@ -778,6 +823,7 @@ partial class ReCodeItForm // // HasGenericParametersUpDown // + HasGenericParametersUpDown.BackColor = SystemColors.ScrollBar; HasGenericParametersUpDown.Location = new Point(10, 366); HasGenericParametersUpDown.Name = "HasGenericParametersUpDown"; HasGenericParametersUpDown.Size = new Size(208, 31); @@ -787,6 +833,7 @@ partial class ReCodeItForm // // IsEnumUpDown // + IsEnumUpDown.BackColor = SystemColors.ScrollBar; IsEnumUpDown.Location = new Point(10, 255); IsEnumUpDown.Name = "IsEnumUpDown"; IsEnumUpDown.Size = new Size(208, 31); @@ -796,6 +843,7 @@ partial class ReCodeItForm // // NestedTypeCountUpDown // + NestedTypeCountUpDown.BackColor = SystemColors.ScrollBar; NestedTypeCountUpDown.Location = new Point(224, 329); NestedTypeCountUpDown.Name = "NestedTypeCountUpDown"; NestedTypeCountUpDown.Size = new Size(55, 31); @@ -803,16 +851,18 @@ partial class ReCodeItForm // // SaveRemapButton // + SaveRemapButton.BackColor = SystemColors.ButtonShadow; SaveRemapButton.Location = new Point(580, 64); SaveRemapButton.Name = "SaveRemapButton"; SaveRemapButton.Size = new Size(168, 34); SaveRemapButton.TabIndex = 4; SaveRemapButton.Text = "Save Remap"; - SaveRemapButton.UseVisualStyleBackColor = true; + SaveRemapButton.UseVisualStyleBackColor = false; SaveRemapButton.Click += AddRemapButton_Click; // // IsDerivedUpDown // + IsDerivedUpDown.BackColor = SystemColors.ScrollBar; IsDerivedUpDown.Location = new Point(10, 329); IsDerivedUpDown.Name = "IsDerivedUpDown"; IsDerivedUpDown.Size = new Size(208, 31); @@ -822,6 +872,7 @@ partial class ReCodeItForm // // IsNestedUpDown // + IsNestedUpDown.BackColor = SystemColors.ScrollBar; IsNestedUpDown.Location = new Point(10, 68); IsNestedUpDown.Name = "IsNestedUpDown"; IsNestedUpDown.Size = new Size(208, 31); @@ -831,6 +882,7 @@ partial class ReCodeItForm // // HasAttributeUpDown // + HasAttributeUpDown.BackColor = SystemColors.ScrollBar; HasAttributeUpDown.Location = new Point(10, 292); HasAttributeUpDown.Name = "HasAttributeUpDown"; HasAttributeUpDown.Size = new Size(208, 31); @@ -840,6 +892,7 @@ partial class ReCodeItForm // // BaseClassExcludeTextField // + BaseClassExcludeTextField.BackColor = SystemColors.ScrollBar; BaseClassExcludeTextField.Location = new Point(224, 145); BaseClassExcludeTextField.Name = "BaseClassExcludeTextField"; BaseClassExcludeTextField.PlaceholderText = "Exclude Base Class"; @@ -858,6 +911,7 @@ partial class ReCodeItForm // // IsSealedUpDown // + IsSealedUpDown.BackColor = SystemColors.ScrollBar; IsSealedUpDown.Location = new Point(10, 218); IsSealedUpDown.Name = "IsSealedUpDown"; IsSealedUpDown.Size = new Size(208, 31); @@ -868,25 +922,106 @@ partial class ReCodeItForm // TabControlMain // TabControlMain.Controls.Add(TabPageRemapper); - TabControlMain.Controls.Add(tabPage5); + TabControlMain.Controls.Add(AutoMapperTab); + TabControlMain.Controls.Add(SettingsTab); TabControlMain.Location = new Point(-5, 1); TabControlMain.Name = "TabControlMain"; TabControlMain.SelectedIndex = 0; TabControlMain.Size = new Size(1344, 991); TabControlMain.TabIndex = 6; // - // tabPage5 + // AutoMapperTab // - tabPage5.BackColor = SystemColors.ControlDarkDark; - tabPage5.Controls.Add(groupBox3); - tabPage5.Controls.Add(groupBox4); - tabPage5.Controls.Add(groupBox2); - tabPage5.Location = new Point(4, 34); - tabPage5.Name = "tabPage5"; - tabPage5.Padding = new Padding(3); - tabPage5.Size = new Size(1336, 953); - tabPage5.TabIndex = 2; - tabPage5.Text = "Settings"; + AutoMapperTab.BackColor = SystemColors.ControlDarkDark; + AutoMapperTab.Controls.Add(RunAutoRemapButton); + AutoMapperTab.Controls.Add(label2); + AutoMapperTab.Controls.Add(AutoMapperRequiredMatchesUpDown); + AutoMapperTab.Controls.Add(treeView1); + AutoMapperTab.Controls.Add(AutoMapperExcludeTextField); + AutoMapperTab.Controls.Add(AutoMapperExcludeRemoveButton); + AutoMapperTab.Controls.Add(AutoMapperExcludeAddButton); + AutoMapperTab.Controls.Add(AutoMapperExcludeBox); + AutoMapperTab.Location = new Point(4, 34); + AutoMapperTab.Name = "AutoMapperTab"; + AutoMapperTab.Padding = new Padding(3); + AutoMapperTab.Size = new Size(1336, 953); + AutoMapperTab.TabIndex = 3; + AutoMapperTab.Text = "Auto Mapper"; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(76, 60); + label2.Name = "label2"; + label2.Size = new Size(153, 25); + label2.TabIndex = 27; + label2.Text = "Required Matches"; + // + // AutoMapperRequiredMatchesUpDown + // + AutoMapperRequiredMatchesUpDown.Location = new Point(13, 58); + AutoMapperRequiredMatchesUpDown.Name = "AutoMapperRequiredMatchesUpDown"; + AutoMapperRequiredMatchesUpDown.Size = new Size(57, 31); + AutoMapperRequiredMatchesUpDown.TabIndex = 26; + // + // treeView1 + // + treeView1.Location = new Point(918, 18); + treeView1.Name = "treeView1"; + treeView1.Size = new Size(368, 901); + treeView1.TabIndex = 25; + // + // AutoMapperExcludeTextField + // + AutoMapperExcludeTextField.BackColor = SystemColors.ScrollBar; + AutoMapperExcludeTextField.Location = new Point(6, 173); + AutoMapperExcludeTextField.Name = "AutoMapperExcludeTextField"; + AutoMapperExcludeTextField.PlaceholderText = "Exclude Names"; + AutoMapperExcludeTextField.Size = new Size(353, 31); + AutoMapperExcludeTextField.TabIndex = 24; + // + // AutoMapperExcludeRemoveButton + // + AutoMapperExcludeRemoveButton.Location = new Point(247, 445); + AutoMapperExcludeRemoveButton.Name = "AutoMapperExcludeRemoveButton"; + AutoMapperExcludeRemoveButton.Size = new Size(112, 34); + AutoMapperExcludeRemoveButton.TabIndex = 23; + AutoMapperExcludeRemoveButton.Text = "Remove"; + AutoMapperExcludeRemoveButton.UseVisualStyleBackColor = true; + AutoMapperExcludeRemoveButton.Click += AutoMapperExcludeRemoveButton_Click; + // + // AutoMapperExcludeAddButton + // + AutoMapperExcludeAddButton.Location = new Point(6, 445); + AutoMapperExcludeAddButton.Name = "AutoMapperExcludeAddButton"; + AutoMapperExcludeAddButton.Size = new Size(112, 34); + AutoMapperExcludeAddButton.TabIndex = 22; + AutoMapperExcludeAddButton.Text = "Add"; + AutoMapperExcludeAddButton.UseVisualStyleBackColor = true; + AutoMapperExcludeAddButton.Click += AutoMapperExcludeAddButton_Click; + // + // AutoMapperExcludeBox + // + AutoMapperExcludeBox.BackColor = Color.Gray; + AutoMapperExcludeBox.FormattingEnabled = true; + AutoMapperExcludeBox.ItemHeight = 25; + AutoMapperExcludeBox.Location = new Point(6, 210); + AutoMapperExcludeBox.Name = "AutoMapperExcludeBox"; + AutoMapperExcludeBox.Size = new Size(353, 229); + AutoMapperExcludeBox.TabIndex = 21; + // + // SettingsTab + // + SettingsTab.BackColor = SystemColors.ControlDarkDark; + SettingsTab.Controls.Add(groupBox3); + SettingsTab.Controls.Add(groupBox4); + SettingsTab.Controls.Add(groupBox2); + SettingsTab.Location = new Point(4, 34); + SettingsTab.Name = "SettingsTab"; + SettingsTab.Padding = new Padding(3); + SettingsTab.Size = new Size(1336, 953); + SettingsTab.TabIndex = 2; + SettingsTab.Text = "Settings"; // // groupBox3 // @@ -920,8 +1055,6 @@ partial class ReCodeItForm // // groupBox4 // - groupBox4.Controls.Add(label2); - groupBox4.Controls.Add(AutoMapperRequiredMatchesUpDown); groupBox4.Location = new Point(729, 6); groupBox4.Name = "groupBox4"; groupBox4.Size = new Size(557, 285); @@ -929,23 +1062,6 @@ partial class ReCodeItForm groupBox4.TabStop = false; groupBox4.Text = "Auto Mapper Settings"; // - // label2 - // - label2.AutoSize = true; - label2.Location = new Point(69, 37); - label2.Name = "label2"; - label2.Size = new Size(153, 25); - label2.TabIndex = 6; - label2.Text = "Required Matches"; - // - // AutoMapperRequiredMatchesUpDown - // - AutoMapperRequiredMatchesUpDown.Location = new Point(6, 35); - AutoMapperRequiredMatchesUpDown.Name = "AutoMapperRequiredMatchesUpDown"; - AutoMapperRequiredMatchesUpDown.Size = new Size(57, 31); - AutoMapperRequiredMatchesUpDown.TabIndex = 5; - AutoMapperRequiredMatchesUpDown.ValueChanged += AutoMapperRequiredMatchesUpDown_ValueChanged; - // // groupBox2 // groupBox2.Controls.Add(MappingChooseButton); @@ -1098,14 +1214,15 @@ partial class ReCodeItForm DebugLoggingCheckbox.UseVisualStyleBackColor = true; DebugLoggingCheckbox.CheckedChanged += DebugLoggingCheckbox_CheckedChanged; // - // openFileDialog1 + // RunAutoRemapButton // - openFileDialog1.FileName = "openFileDialog1"; - // - // fileSystemWatcher1 - // - fileSystemWatcher1.EnableRaisingEvents = true; - fileSystemWatcher1.SynchronizingObject = this; + RunAutoRemapButton.Location = new Point(6, 3); + RunAutoRemapButton.Name = "RunAutoRemapButton"; + RunAutoRemapButton.Size = new Size(168, 34); + RunAutoRemapButton.TabIndex = 28; + RunAutoRemapButton.Text = "Run Auto Remap"; + RunAutoRemapButton.UseVisualStyleBackColor = true; + RunAutoRemapButton.Click += RunAutoRemapButton_Click; // // ReCodeItForm // @@ -1117,7 +1234,6 @@ partial class ReCodeItForm FormBorderStyle = FormBorderStyle.FixedSingle; Name = "ReCodeItForm"; Text = "ReCodeIt V0.1.0"; - ((System.ComponentModel.ISupportInitialize)bindingSource1).EndInit(); TabPageRemapper.ResumeLayout(false); groupBox1.ResumeLayout(false); groupBox1.PerformLayout(); @@ -1136,21 +1252,19 @@ partial class ReCodeItForm ((System.ComponentModel.ISupportInitialize)MethodCountUpDown).EndInit(); ((System.ComponentModel.ISupportInitialize)NestedTypeCountUpDown).EndInit(); TabControlMain.ResumeLayout(false); - tabPage5.ResumeLayout(false); + AutoMapperTab.ResumeLayout(false); + AutoMapperTab.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)AutoMapperRequiredMatchesUpDown).EndInit(); + SettingsTab.ResumeLayout(false); groupBox3.ResumeLayout(false); groupBox3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)MaxMatchCountUpDown).EndInit(); - groupBox4.ResumeLayout(false); - groupBox4.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)AutoMapperRequiredMatchesUpDown).EndInit(); groupBox2.ResumeLayout(false); groupBox2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)fileSystemWatcher1).EndInit(); ResumeLayout(false); } #endregion - private BindingSource bindingSource1; private TabPage TabPageRemapper; private GroupBox groupBox1; private TabControl Inclusions; @@ -1204,7 +1318,6 @@ partial class ReCodeItForm private ListView RemapListView; private TabControl TabControlMain; private DomainUpDown IsPublicUpDown; - private ColorDialog colorDialog1; private DomainUpDown HasGenericParametersUpDown; private DomainUpDown IsDerivedUpDown; private DomainUpDown HasAttributeUpDown; @@ -1224,7 +1337,7 @@ partial class ReCodeItForm private CheckBox ConstructorCountEnabled; private NumericUpDown MethodCountUpDown; private CheckBox MethodCountEnabled; - private TabPage tabPage5; + private TabPage SettingsTab; private GroupBox groupBox3; private GroupBox groupBox4; private GroupBox groupBox2; @@ -1236,15 +1349,20 @@ partial class ReCodeItForm private TextBox MappingPathTextBox; private TextBox OutputPathTextBox; private TextBox AssemblyPathTextBox; - private OpenFileDialog openFileDialog1; - private FileSystemWatcher fileSystemWatcher1; private CheckBox RenamePropertiesCheckbox; private CheckBox RenameFieldsCheckbox; private CheckBox UnsealCheckbox; private CheckBox PublicizeCheckbox; private NumericUpDown MaxMatchCountUpDown; - private NumericUpDown AutoMapperRequiredMatchesUpDown; private Label label1; - private Label label2; private Button EditRemapButton; + private TabPage AutoMapperTab; + private TreeView treeView1; + private TextBox AutoMapperExcludeTextField; + private Button AutoMapperExcludeRemoveButton; + private Button AutoMapperExcludeAddButton; + private ListBox AutoMapperExcludeBox; + private Label label2; + private NumericUpDown AutoMapperRequiredMatchesUpDown; + private Button RunAutoRemapButton; } diff --git a/RecodeItGUI/GUI/Main.cs b/RecodeItGUI/GUI/Main.cs index b02e53c..3ef093e 100644 --- a/RecodeItGUI/GUI/Main.cs +++ b/RecodeItGUI/GUI/Main.cs @@ -2,12 +2,14 @@ using ReCodeIt.Enums; using ReCodeIt.Models; using ReCodeIt.ReMapper; using ReCodeIt.Utils; +using ReCodeItLib.AutoMapper; namespace ReCodeIt.GUI; public partial class ReCodeItForm : Form { public static ReCodeItRemapper Remapper { get; private set; } = new(); + public static ReCodeItAutoMapper AutoMapper { get; private set; } = new(); private RemapModel CurrentRemap { get; set; } @@ -17,7 +19,7 @@ public partial class ReCodeItForm : Form { InitializeComponent(); PopulateDomainUpDowns(); - + RefreshSettingsPage(); RemapTreeView.NodeMouseDoubleClick += EditSelectedRemap; Remapper.OnComplete += ReloadTreeView; @@ -172,6 +174,11 @@ public partial class ReCodeItForm : Form } } + private void RunAutoMapButton_Click(object sender, EventArgs e) + { + AutoMapper.InitializeAutoMapping(); + } + #endregion MAIN_BUTTONS #region LISTBOX_BUTTONS @@ -304,6 +311,32 @@ public partial class ReCodeItForm : Form } } + private void AutoMapperExcludeAddButton_Click(object sender, EventArgs e) + { + if (!AutoMapperExcludeBox.Items.Contains(AutoMapperExcludeTextField.Text)) + { + DataProvider.Settings.AutoMapper.TypesToIgnore.Add(AutoMapperExcludeTextField.Text); + AutoMapperExcludeBox.Items.Add(AutoMapperExcludeTextField.Text); + AutoMapperExcludeTextField.Clear(); + DataProvider.SaveAppSettings(); + } + } + + private void AutoMapperExcludeRemoveButton_Click(object sender, EventArgs e) + { + if (AutoMapperExcludeBox.SelectedItem != null) + { + DataProvider.Settings.AutoMapper.TypesToIgnore.RemoveAt(AutoMapperExcludeBox.SelectedIndex); + AutoMapperExcludeBox.Items.Remove(AutoMapperExcludeBox.SelectedItem); + DataProvider.SaveAppSettings(); + } + } + + private void RunAutoRemapButton_Click(object sender, EventArgs e) + { + AutoMapper.InitializeAutoMapping(); + } + #endregion LISTBOX_BUTTONS #endregion BUTTONS @@ -323,6 +356,12 @@ public partial class ReCodeItForm : Form PublicizeCheckbox.Checked = DataProvider.Settings.AppSettings.Publicize; UnsealCheckbox.Checked = DataProvider.Settings.AppSettings.Unseal; + AutoMapperExcludeBox.Items.Clear(); + foreach (var method in DataProvider.Settings.AutoMapper.TypesToIgnore) + { + AutoMapperExcludeBox.Items.Add(method); + } + MaxMatchCountUpDown.Value = DataProvider.Settings.Remapper.MaxMatchCount; AutoMapperRequiredMatchesUpDown.Value = DataProvider.Settings.AutoMapper.RequiredMatches; } @@ -488,7 +527,7 @@ public partial class ReCodeItForm : Form private void EditSelectedRemap(object? sender, TreeNodeMouseClickEventArgs e) { - if (e?.Node.Level != 0) + if (e?.Node.Level != 0 || RemapTreeView?.SelectedNode?.Index < 0 || RemapTreeView?.SelectedNode?.Index == null) { return; } diff --git a/RecodeItGUI/GUI/Main.resx b/RecodeItGUI/GUI/Main.resx index 87197fd..af32865 100644 --- a/RecodeItGUI/GUI/Main.resx +++ b/RecodeItGUI/GUI/Main.resx @@ -117,16 +117,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 - - - 367, 17 - - - 536, 17 - - - 767, 17 - \ No newline at end of file diff --git a/RecodeItGUI/ReCodeItGUI.csproj b/RecodeItGUI/ReCodeItGUI.csproj index 1903880..c7dfacc 100644 --- a/RecodeItGUI/ReCodeItGUI.csproj +++ b/RecodeItGUI/ReCodeItGUI.csproj @@ -9,7 +9,7 @@ - + diff --git a/RecodeItLib/AutoMapper/ReCodeItAutoMapper.cs b/RecodeItLib/AutoMapper/ReCodeItAutoMapper.cs new file mode 100644 index 0000000..7d67768 --- /dev/null +++ b/RecodeItLib/AutoMapper/ReCodeItAutoMapper.cs @@ -0,0 +1,142 @@ +using Mono.Cecil; +using ReCodeIt.Utils; +using ReCodeItLib.Utils; + +namespace ReCodeItLib.AutoMapper; + +public class ReCodeItAutoMapper +{ + private List MappingPairs { get; set; } = []; + + private List IgnoreNames => DataProvider.Settings.AutoMapper.TypesToIgnore; + + private static readonly List SystemTypeIgnoreList = new() + { + "Boolean", + "List", + "Dictionary", + "Byte", + "Int16", + "Int36", + "Func", + "Action" + }; + + private List TokensToMatch = new() + { + "Class", + "GClass" + }; + + public void InitializeAutoMapping() + { + Logger.ClearLog(); + Logger.Log($"Starting Auto Mapping..."); + + // Clear any previous pairs + MappingPairs = []; + + foreach (var type in DataProvider.ModuleDefinition.Types) + { + MappingPairs.AddRange(FilterFieldNames(type)); + MappingPairs.AddRange(FilterPropertyNames(type)); + } + + FilterTypeNames(); + } + + /// + /// Pair field declaring types with their names + /// + /// + /// + private List FilterFieldNames(TypeDefinition type) + { + var fieldsWithTypes = new List(); + + // Handle nested types recursively + foreach (var nestedType in type.NestedTypes) + { + fieldsWithTypes.AddRange(FilterFieldNames(nestedType)); + } + + var fields = type.Fields + // we dont want names shorter than 4 + .Where(f => f.FieldType.Name.Length > 3) + + // Skip value types + .Where(f => !f.FieldType.IsValueType) + + // We dont want fields in the system type ignore list + .Where(f => !IgnoreNames.Contains(f.FieldType.Name.TrimAfterSpecialChar())); + + // Include fields from the current type + foreach (var field in fields) + { + //Logger.Log($"Collecting Field: Type: {field.FieldType.Name.TrimAfterSpecialChar()} Field Name: {field.Name}"); + + fieldsWithTypes.Add(new MappingPair(field.FieldType, field.Name)); + } + + return fieldsWithTypes; + } + + /// + /// Pair field declaring types with their names + /// + /// + /// + private List FilterPropertyNames(TypeDefinition type) + { + var propertiesWithTypes = new List(); + + // Handle nested types recursively + foreach (var nestedType in type.NestedTypes) + { + propertiesWithTypes.AddRange(FilterPropertyNames(nestedType)); + } + + var properties = type.Properties + // we dont want names shorter than 4 + .Where(p => p.PropertyType.Name.Length > 3) + + // Skip value types + .Where(p => !p.PropertyType.IsValueType) + + // We dont want fields in the global ignore list + .Where(p => !IgnoreNames.Contains(p.PropertyType.Name.TrimAfterSpecialChar())); + + // Include fields from the current type + foreach (var property in properties) + { + //Logger.Log($"Collecting Property: Type: {property.PropertyType.Name.TrimAfterSpecialChar()} Field Name: {property.Name}"); + + propertiesWithTypes.Add(new MappingPair(property.PropertyType, property.Name)); + } + + return propertiesWithTypes; + } + + private void FilterTypeNames() + { + // Filter types to the ones we're looking for + var mappingPairs = MappingPairs + .Where(pair => TokensToMatch.Any(token => pair.Type.Name.StartsWith(token))) + + // Filter out anything that has the same name as the type + .Where(pair => !TokensToMatch.Any(token => pair.Name.ToLower().StartsWith(token.ToLower()))); + + foreach (var pair in mappingPairs) + { + Logger.Log($"Type: {pair.Type.Name} identifier: {pair.Name}"); + } + + Logger.Log($"Match Count {mappingPairs.Count()}"); + } + + private sealed class MappingPair(TypeReference type, string name) + { + public TypeReference Type { get; set; } = type; + public string Name { get; set; } = name; + } +} \ No newline at end of file diff --git a/RecodeItLib/DeMangler/ReCodeItDeMangler.cs b/RecodeItLib/DeMangler/ReCodeItDeMangler.cs new file mode 100644 index 0000000..99e37a7 --- /dev/null +++ b/RecodeItLib/DeMangler/ReCodeItDeMangler.cs @@ -0,0 +1,5 @@ +namespace ReCodeItLib.DeMangler; + +internal class ReCodeItDeMangler +{ +} \ No newline at end of file diff --git a/RecodeItLib/Models/AppSettingsModel.cs b/RecodeItLib/Models/AppSettingsModel.cs index d16ddd7..647bc56 100644 --- a/RecodeItLib/Models/AppSettingsModel.cs +++ b/RecodeItLib/Models/AppSettingsModel.cs @@ -13,25 +13,29 @@ public class Settings public class AppSettings { - public bool Debug { get; set; } = false; - public bool SilentMode { get; set; } = true; - public string AssemblyPath { get; set; } = string.Empty; - public string OutputPath { get; set; } = string.Empty; - public string MappingPath { get; set; } = string.Empty; - public bool RenameFields { get; set; } = true; - public bool RenameProperties { get; set; } = true; - public bool Publicize { get; set; } = false; - public bool Unseal { get; set; } = false; + public bool Debug { get; set; } + public bool SilentMode { get; set; } + public string AssemblyPath { get; set; } + public string OutputPath { get; set; } + public string MappingPath { get; set; } + public bool RenameFields { get; set; } + public bool RenameProperties { get; set; } + public bool Publicize { get; set; } + public bool Unseal { get; set; } } public class RemapperSettings { - public int MaxMatchCount { get; set; } = 5; + public int MaxMatchCount { get; set; } } public class AutoMapperSettings { - public int RequiredMatches { get; set; } = 5; + public int RequiredMatches { get; set; } - public List NamesToIgnore { get; set; } = []; + public int MinLengthToMatch { get; set; } + + public List TypesToIgnore { get; set; } + + public List TokensToMatch { get; set; } } \ No newline at end of file diff --git a/RecodeItLib/ReCodeItLib.csproj b/RecodeItLib/ReCodeItLib.csproj index 399d830..2026612 100644 --- a/RecodeItLib/ReCodeItLib.csproj +++ b/RecodeItLib/ReCodeItLib.csproj @@ -14,6 +14,6 @@ - + diff --git a/RecodeItLib/Utils/DataProvider.cs b/RecodeItLib/Utils/DataProvider.cs index 511bf35..ff2181a 100644 --- a/RecodeItLib/Utils/DataProvider.cs +++ b/RecodeItLib/Utils/DataProvider.cs @@ -1,6 +1,6 @@ -using ReCodeIt.Models; -using Mono.Cecil; +using Mono.Cecil; using Newtonsoft.Json; +using ReCodeIt.Models; namespace ReCodeIt.Utils; @@ -50,7 +50,12 @@ public static class DataProvider throw new FileNotFoundException($"path `{settingsPath}` does not exist..."); } - var jsonText = JsonConvert.SerializeObject(Settings); + JsonSerializerSettings settings = new() + { + Formatting = Formatting.Indented + }; + + var jsonText = JsonConvert.SerializeObject(Settings, settings); File.WriteAllText(settingsPath, jsonText); } diff --git a/RecodeItLib/Utils/StringExtentions.cs b/RecodeItLib/Utils/StringExtentions.cs new file mode 100644 index 0000000..dc2cb4b --- /dev/null +++ b/RecodeItLib/Utils/StringExtentions.cs @@ -0,0 +1,41 @@ +using System.Text; + +namespace ReCodeItLib.Utils; + +internal static class StringExtentions +{ + /// + /// Returns a string trimmed after any non letter character + /// + /// + /// Trimmed string if special character found, or the original string + public static string TrimAfterSpecialChar(this string str) + { + var sb = new StringBuilder(); + + var trimChars = new char[] { '`', '[', ']' }; + + foreach (char c in str) + { + if (trimChars.Contains(c)) + { + } + + if (char.IsLetter(c) || char.IsDigit(c)) + { + sb.Append(c); + } + else + { + return sb.ToString(); + } + } + + if (sb.Length > 0) + { + return sb.ToString(); + } + + return str; + } +} \ No newline at end of file diff --git a/Templates/Settings.jsonc b/Templates/Settings.jsonc index b2a1e20..2dd9f5d 100644 --- a/Templates/Settings.jsonc +++ b/Templates/Settings.jsonc @@ -15,7 +15,27 @@ }, "AutoMapper": { "RequiredMatches": 5, // Minimum number of times a member must have this name in the assembly before considering it for remapping - "NamesToIgnore": [ // Any member name you want to ignore while iterating through the assembly + "MinLengthToMatch": 6, // Minimum length of the field/property name in code before it will be considered for a rename + "TypesToIgnore": [ // Any member name you want to ignore while iterating through the assembly + "Boolean", + "List", + "Dictionary", + "Byte", + "Int16", + "Int32", + "Func", + "Action", + "Object", + "String", + "Vector2", + "Vector3", + "Vector4", + "Stream", + "HashSet", + "Double", + "IEnumerator" + ], + "TokensToMatch": [ // The auto mapper will look for these tokens in class names and prioritize those ] }