Browse Source

Support project templates using ${ProjectName} as part of the directory name.

Project template containing ${ProjectName} in the Project/@directory attribute will have the project name expanded.

    <Project name="${ProjectName}.Interface" directory="Base\${ProjectName}.Interface" language="C#">
pull/28/head
Matt Ward 13 years ago
parent
commit
c8af6af505
  1. 7
      src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

7
src/Main/Base/Project/Src/Internal/Templates/Project/ProjectDescriptor.cs

@ -276,7 +276,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -276,7 +276,7 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
string outerProjectName = projectCreateInformation.ProjectName;
try
{
projectCreateInformation.ProjectBasePath = Path.Combine(projectCreateInformation.ProjectBasePath, this.relativePath);
projectCreateInformation.ProjectBasePath = Path.Combine(projectCreateInformation.ProjectBasePath, GetRelativePath(projectCreateInformation));
if (!Directory.Exists(projectCreateInformation.ProjectBasePath)) {
Directory.CreateDirectory(projectCreateInformation.ProjectBasePath);
}
@ -524,6 +524,11 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates @@ -524,6 +524,11 @@ namespace ICSharpCode.SharpDevelop.Internal.Templates
}
}
string GetRelativePath(ProjectCreateInformation projectCreateInformation)
{
return StringParser.Parse(this.relativePath, new StringTagPair("ProjectName", projectCreateInformation.ProjectName));
}
void RunPreCreateActions(ProjectCreateInformation projectCreateInformation)
{
foreach (var action in preCreateActions) {

Loading…
Cancel
Save