Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <matt.ward@xamarin.com>2017-05-09 18:46:13 +0300
committerMatt Ward <matt.ward@xamarin.com>2017-05-09 18:46:13 +0300
commit30f668669be517a2903785d36e70ed3aa45c8a34 (patch)
tree8ca8d2b9eae1e3d42f88e58115270b6348d220b2 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates
parent46d9c40486f45ac1d42da59a529928af3f05a41b (diff)
[Ide] Support default parameters with the new templating engine
The project templates can now specify a comma or semi-colon set of parameter values that will be used by default when creating project templates with the templating engine that is used for .NET Core. These parameter values can be set in a defaultParameters attribute. <Template id="MyTemplate" path="Templates/ProjectTemplates.1.0.nupkg" defaultParameters="framework=netcoreapp1.1" category="netcore/library/general" />
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs25
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs2
2 files changed, 24 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
index 0449b098c8..6459b3de30 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
@@ -135,14 +135,16 @@ namespace MonoDevelop.Ide.Templates
public async Task<ProcessedTemplateResult> ProcessTemplate (SolutionTemplate template, NewProjectConfiguration config, SolutionFolder parentFolder)
{
- var templateInfo = ((MicrosoftTemplateEngineSolutionTemplate)template).templateInfo;
+ var solutionTemplate = (MicrosoftTemplateEngineSolutionTemplate)template;
+ var parameters = GetParameters (solutionTemplate);
+ var templateInfo = solutionTemplate.templateInfo;
var workspaceItems = new List<IWorkspaceFileObject> ();
var result = await templateCreator.InstantiateAsync (
templateInfo,
config.ProjectName,
config.GetValidProjectName (),
config.ProjectLocation,
- new Dictionary<string, string> (),
+ parameters,
true,
false,
null);
@@ -208,6 +210,25 @@ namespace MonoDevelop.Ide.Templates
return processResult;
}
+ Dictionary<string, string> GetParameters (MicrosoftTemplateEngineSolutionTemplate template)
+ {
+ var parameters = new Dictionary<string, string> ();
+ if (string.IsNullOrEmpty (template.DefaultParameters))
+ return parameters;
+
+ foreach (TemplateParameter parameter in GetValidParameters (template.DefaultParameters)) {
+ parameters [parameter.Name] = parameter.Value;
+ }
+
+ return parameters;
+ }
+
+ static IEnumerable<TemplateParameter> GetValidParameters (string parameters)
+ {
+ return TemplateParameter.CreateParameters (parameters)
+ .Where (parameter => parameter.IsValid);
+ }
+
async Task FormatFile (Project p, FilePath file)
{
string mime = DesktopService.GetMimeTypeForUri (file);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs
index 6942225ed2..f8d34ed475 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineSolutionTemplate.cs
@@ -53,7 +53,7 @@ namespace MonoDevelop.Ide.Templates
//ProjectFileExtension = template.FileExtension;
//Wizard = template.WizardPath;
//SupportedParameters = template.SupportedParameters;
- //DefaultParameters = template.DefaultParameters;
+ DefaultParameters = template.DefaultParameters;
ImageId = template.ImageId;
//ImageFile = template.ImageFile;
//Visibility = GetVisibility (template.Visibility);