From 5c3c5ffa7c92561f53357d4e2c35408dbaf0ee34 Mon Sep 17 00:00:00 2001 From: alcexhim Date: Tue, 10 Jun 2014 12:45:07 -0400 Subject: [PATCH] Moved Visual Studio project and solution DataFormats to separate plugin --- .../UniversalEditor.Essential.csproj | 2 - .../VisualStudioProjectDataFormat.cs | 0 .../VisualStudioSolutionDataFormat.cs | 45 +++++++++++-- .../Properties/AssemblyInfo.cs | 36 +++++++++++ ...itor.Plugins.Microsoft.VisualStudio.csproj | 63 +++++++++++++++++++ CSharp/UniversalEditor.sln | 9 +++ 6 files changed, 149 insertions(+), 6 deletions(-) rename CSharp/Plugins/{UniversalEditor.Essential => UniversalEditor.Plugins.Microsoft.VisualStudio}/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioProjectDataFormat.cs (100%) rename CSharp/Plugins/{UniversalEditor.Essential => UniversalEditor.Plugins.Microsoft.VisualStudio}/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs (82%) create mode 100644 CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/Properties/AssemblyInfo.cs create mode 100644 CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/UniversalEditor.Plugins.Microsoft.VisualStudio.csproj diff --git a/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj b/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj index c4b71a27..2a18e605 100644 --- a/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj +++ b/CSharp/Plugins/UniversalEditor.Essential/UniversalEditor.Essential.csproj @@ -53,8 +53,6 @@ - - diff --git a/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioProjectDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioProjectDataFormat.cs similarity index 100% rename from CSharp/Plugins/UniversalEditor.Essential/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioProjectDataFormat.cs rename to CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioProjectDataFormat.cs diff --git a/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs similarity index 82% rename from CSharp/Plugins/UniversalEditor.Essential/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs rename to CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs index da11b1ba..fffdebdc 100644 --- a/CSharp/Plugins/UniversalEditor.Essential/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/DataFormats/Solution/Microsoft/VisualStudio/VisualStudioSolutionDataFormat.cs @@ -6,6 +6,7 @@ using UniversalEditor.Accessors; using UniversalEditor.IO; using UniversalEditor.ObjectModels.PropertyList; using UniversalEditor.ObjectModels.Solution; +using UniversalEditor.UserInterface; namespace UniversalEditor.DataFormats.Solution.Microsoft.VisualStudio { @@ -49,11 +50,46 @@ namespace UniversalEditor.DataFormats.Solution.Microsoft.VisualStudio string signature2 = reader.ReadLine(); if (!signature2.StartsWith(signature2Verify)) throw new InvalidDataFormatException("File does not begin with \"" + signature2Verify + "\""); + Project lastProject = null; + while (!reader.EndOfStream) { - string line = reader.ReadLine(); + string line = reader.ReadLine().Trim(); if (line.StartsWith("#") || String.IsNullOrEmpty(line)) continue; + if (line.StartsWith("Project(")) + { + if (!line.Contains("=")) + { + HostApplication.Messages.Add(HostApplicationMessageSeverity.Warning, "Invalid Project declaration in solution file"); + continue; + } + + lastProject = new Project(); + + string strProjectTypeID = line.Substring(9, line.IndexOf(')') - 10); + Guid projectTypeID = new Guid(strProjectTypeID); + + string restOfDeclaration = line.Substring(line.IndexOf('=') + 1).Trim(); + + } + else if (line == "EndProject") + { + lastProject = null; + } + else if (line.StartsWith("GlobalSection(")) + { + + } + else if (line == "EndGlobalSection") + { + + } + else + { + HostApplication.Messages.Add(HostApplicationMessageSeverity.Warning, "Ignoring unknown solution directive \"" + line + "\""); + continue; + } } } @@ -96,11 +132,12 @@ namespace UniversalEditor.DataFormats.Solution.Microsoft.VisualStudio SolutionObjectModel solproj = new SolutionObjectModel(); solproj.Projects.Add(project); - if (!System.IO.Directory.Exists(soldir)) + string projdir = soldir + "/" + project.Title; + if (!System.IO.Directory.Exists(projdir)) { - System.IO.Directory.CreateDirectory(soldir); + System.IO.Directory.CreateDirectory(projdir); } - Document.Save(solproj, new VisualStudioProjectDataFormat(), new FileAccessor(soldir + "/" + project.Title + "/" + project.Title + ".ueproj"), true); + Document.Save(solproj, new VisualStudioProjectDataFormat(), new FileAccessor(projdir + "/" + project.Title + ".ueproj", true, true), true); } writer.WriteLine("Global"); diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/Properties/AssemblyInfo.cs b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..83a2a08b --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("UniversalEditor.Plugins.Microsoft.VisualStudio")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("City of Orlando")] +[assembly: AssemblyProduct("UniversalEditor.Plugins.Microsoft.VisualStudio")] +[assembly: AssemblyCopyright("Copyright © City of Orlando 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b644f4de-a2c1-42bc-9d5d-ee1ba2bf8ef6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/UniversalEditor.Plugins.Microsoft.VisualStudio.csproj b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/UniversalEditor.Plugins.Microsoft.VisualStudio.csproj new file mode 100644 index 00000000..19703a1e --- /dev/null +++ b/CSharp/Plugins/UniversalEditor.Plugins.Microsoft.VisualStudio/UniversalEditor.Plugins.Microsoft.VisualStudio.csproj @@ -0,0 +1,63 @@ + + + + + Debug + AnyCPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A} + Library + Properties + UniversalEditor + UniversalEditor.Plugins.Microsoft.VisualStudio + v3.5 + 512 + + + true + full + false + ..\..\Output\Debug\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Output\Release\Plugins\ + TRACE + prompt + 4 + + + + + + + + + + + + + {2d4737e6-6d95-408a-90db-8dff38147e85} + UniversalEditor.Core + + + {8622ebc4-8e20-476e-b284-33d472081f5c} + UniversalEditor.UserInterface + + + {30467e5c-05bc-4856-aadc-13906ef4cadd} + UniversalEditor.Essential + + + + + \ No newline at end of file diff --git a/CSharp/UniversalEditor.sln b/CSharp/UniversalEditor.sln index b0386fbf..8b03fd6f 100644 --- a/CSharp/UniversalEditor.sln +++ b/CSharp/UniversalEditor.sln @@ -91,6 +91,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Surodoine", "..\..\Surodoin EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Microsoft.Merlin", "Plugins\UniversalEditor.Plugins.Microsoft.Merlin\UniversalEditor.Plugins.Microsoft.Merlin.csproj", "{9F1FDC26-5F1C-4C2A-BBBF-3A597A72802D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Plugins.Microsoft.VisualStudio", "Plugins\UniversalEditor.Plugins.Microsoft.VisualStudio\UniversalEditor.Plugins.Microsoft.VisualStudio.csproj", "{E6C9A73D-4556-4220-9BC7-302A7EE64C1A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -311,6 +313,12 @@ Global {9F1FDC26-5F1C-4C2A-BBBF-3A597A72802D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F1FDC26-5F1C-4C2A-BBBF-3A597A72802D}.Release|Any CPU.Build.0 = Release|Any CPU {9F1FDC26-5F1C-4C2A-BBBF-3A597A72802D}.Release|x86.ActiveCfg = Release|Any CPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A}.Debug|x86.ActiveCfg = Debug|Any CPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A}.Release|Any CPU.Build.0 = Release|Any CPU + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -344,6 +352,7 @@ Global {41DBA506-177E-4B2D-8E6D-738E371326A1} = {71CFF024-26F7-4626-A526-B435FDF8D64E} {BED1EEAF-9ADD-46F6-92D0-53957858E25B} = {71CFF024-26F7-4626-A526-B435FDF8D64E} {9F1FDC26-5F1C-4C2A-BBBF-3A597A72802D} = {71CFF024-26F7-4626-A526-B435FDF8D64E} + {E6C9A73D-4556-4220-9BC7-302A7EE64C1A} = {71CFF024-26F7-4626-A526-B435FDF8D64E} {FE016EA3-DC31-4A92-8B0A-8C746EC117E1} = {46041F27-7C1C-4209-B72B-251EDB5D4C61} {C1F34183-7A2F-41A6-9958-F6F329099654} = {A846CA33-9CAA-4237-B14F-8721DBA89442} {5A423A3E-51C5-4188-8AD5-FB5C0CB76C6A} = {C1F34183-7A2F-41A6-9958-F6F329099654}