From e2a3fe175812ddae176de86bb83332b5cff39ccd Mon Sep 17 00:00:00 2001
From: mterwoord_cp <7cd3fd84a0151ea055c2f79e4d2eef9576fe9afesxUZAwxD>
Date: Wed, 11 Aug 2010 09:48:47 +0000
Subject: [PATCH]
---
.../Cosmos.VS.Package.csproj | 31 ++++---
.../Proj => }/CosmosProject.Cosmos | 11 ++-
.../Templates/GenerateCosmosProjectWizard.cs | 79 ++++++++++++++++++
.../{ProjKernel => }/AssemblyInfo.cs | 0
.../{ProjKernel => }/CSharpProj.vstemplate | 10 +--
.../{ProjKernel => }/CSharpProject.csproj | 2 +-
.../CosmosProject.vstemplate | 19 -----
.../{ProjKernel => }/Kernel.cs | 0
.../CosmosProject (C#)/ProjKernel/Kernel.ico | Bin 25214 -> 0 bytes
9 files changed, 104 insertions(+), 48 deletions(-)
rename source2/VSIP/Cosmos.VS.Package/Templates/{Projects/CosmosProject (C#)/Proj => }/CosmosProject.Cosmos (82%)
create mode 100644 source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs
rename source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/{ProjKernel => }/AssemblyInfo.cs (100%)
rename source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/{ProjKernel => }/CSharpProj.vstemplate (78%)
rename source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/{ProjKernel => }/CSharpProject.csproj (95%)
delete mode 100644 source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate
rename source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/{ProjKernel => }/Kernel.cs (100%)
delete mode 100644 source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.ico
diff --git a/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj b/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj
index d0463f8b5..577a20528 100644
--- a/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj
+++ b/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj
@@ -136,6 +136,7 @@
SubPropertyPageBase.cs
+
@@ -174,37 +175,33 @@
-
-
- Templates\Projects\CosmosProject %28C#%29
-
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
+
+ Templates\Projects\CosmosProject %28C#%29
+
+
+ Templates\Projects\CosmosProject %28C#%29
+
+
Templates\Projects\CosmosProject %28C#%29
-
+
Templates\Projects\CosmosProject %28C#%29
-
-
- Templates\Projects\CosmosProject %28C#%29
-
-
- Templates\Projects\CosmosProject %28C#%29
-
+
BuildPage.cs
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Proj/CosmosProject.Cosmos b/source2/VSIP/Cosmos.VS.Package/Templates/CosmosProject.Cosmos
similarity index 82%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Proj/CosmosProject.Cosmos
rename to source2/VSIP/Cosmos.VS.Package/Templates/CosmosProject.Cosmos
index 71af3844f..5c7fcde7d 100644
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Proj/CosmosProject.Cosmos
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/CosmosProject.Cosmos
@@ -2,9 +2,9 @@
Debug
2.0
- $GeneratedGuid1$
+ $CosmosProjGuid$
false
- $safeprojectname$
+ $CosmosProjectName$
elf
@@ -32,12 +32,11 @@
false
-
- $safeprojectname$Kernel
- $GeneratedGuid2$
+
+ $KernelName$
+ $KernelGuid$
-
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs b/source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs
new file mode 100644
index 000000000..e4404cce3
--- /dev/null
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/GenerateCosmosProjectWizard.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.VisualStudio.TemplateWizard;
+using System.Windows.Forms;
+using System.IO;
+
+namespace Cosmos.VS.Package.Templates
+{
+ public class GenerateCosmosProjectWizard: IWizard
+ {
+ public void BeforeOpeningFile(EnvDTE.ProjectItem projectItem)
+ {
+ }
+
+ private static string GetTemplateString()
+ {
+ var xAsm = typeof(GenerateCosmosProjectWizard).Assembly;
+ using (var xStream = xAsm.GetManifestResourceStream(typeof(GenerateCosmosProjectWizard), "CosmosProject.Cosmos"))
+ {
+ if (xStream == null)
+ {
+ MessageBox.Show("Could not find template manifest stream!");
+ return null;
+ }
+ using (var xReader = new StreamReader(xStream))
+ {
+ return xReader.ReadToEnd();
+ }
+ }
+ }
+
+ public void ProjectFinishedGenerating(EnvDTE.Project project)
+ {
+ //project.DTE.Solution
+ var xInputString = GetTemplateString();
+ if (xInputString == null)
+ {
+ return;
+ }
+
+ xInputString = xInputString.Replace("$KernelGuid$", mGuidKernel.ToString("b"));
+ xInputString = xInputString.Replace("$CosmosProjGuid$", mGuidCosmosProj.ToString("b"));
+ xInputString = xInputString.Replace("$KernelName$", project.Name);
+ xInputString = xInputString.Replace("$CosmosProjectName$", project.Name + "Boot");
+ var xFilename = Path.GetDirectoryName(project.FullName);
+ xFilename = Path.Combine(xFilename, project.Name + "Boot");
+ xFilename += ".Cosmos";
+ File.WriteAllText(xFilename, xInputString);
+ project.DTE.Solution.AddFromFile(xFilename, false);
+ }
+
+ public void ProjectItemFinishedGenerating(EnvDTE.ProjectItem projectItem)
+ {
+ }
+
+ public void RunFinished()
+ {
+ }
+
+ private Guid mGuidKernel;
+ private Guid mGuidCosmosProj;
+
+ public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams)
+ {
+ mGuidKernel = Guid.NewGuid();
+ mGuidCosmosProj = Guid.NewGuid();
+ replacementsDictionary.Add("$KernelGuid$", mGuidKernel.ToString("B"));
+ replacementsDictionary.Add("$CosmosProjGuid$", mGuidCosmosProj.ToString("B"));
+
+ }
+
+ public bool ShouldAddProjectItem(string filePath)
+ {
+ return true;
+ }
+ }
+}
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/AssemblyInfo.cs b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/AssemblyInfo.cs
similarity index 100%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/AssemblyInfo.cs
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/AssemblyInfo.cs
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProj.vstemplate b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProj.vstemplate
similarity index 78%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProj.vstemplate
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProj.vstemplate
index 35d1dcdab..2c82c59d6 100644
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProj.vstemplate
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProj.vstemplate
@@ -1,14 +1,14 @@
- ProjKernel
+ CSharp Kernel
A project for creating a Cosmos Kernel
Kernel.ico
- CSharp
+ Cosmos
true
CosmosProjectKernel
- true-->
+ true
@@ -18,6 +18,6 @@
Cosmos.VS.Package, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4d94ac959d59ec3
- Cosmos.VS.Package.Templates.Wizards.GenerateGuidsWizard
+ Cosmos.VS.Package.Templates.GenerateCosmosProjectWizard
\ No newline at end of file
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProject.csproj b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProject.csproj
similarity index 95%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProject.csproj
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProject.csproj
index e4e3014dc..ac6148aae 100644
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/CSharpProject.csproj
+++ b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CSharpProject.csproj
@@ -5,7 +5,7 @@
AnyCPU
8.0.30703
2.0
- $GeneratedGuid2$
+ $KernelGuid$
Library
Properties
$safeprojectname$
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate
deleted file mode 100644
index dffc9042d..000000000
--- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/CosmosProject.vstemplate
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- Cosmos Project
- A project for creating a Cosmos Kernel
- Kernel.ico
- Cosmos
- 50
-
-
-
-
- ProjKernel\CSharpProj.vstemplate
-
-
- Proj\CosmosProj.vstemplate
-
-
-
-
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.cs b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Kernel.cs
similarity index 100%
rename from source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.cs
rename to source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/Kernel.cs
diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.ico b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject (C#)/ProjKernel/Kernel.ico
deleted file mode 100644
index fcdc4018323d6394947898b5445c7c219df93a15..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 25214
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