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}