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@microsoft.com>2018-02-27 16:58:13 +0300
committerMatt Ward <matt.ward@microsoft.com>2018-03-26 13:52:58 +0300
commit43d1669906892e62c4e5f7ba8dcd5b9fc9fa0c0d (patch)
tree972ef0938e6dd620a28d96807837699f07638fbd /main/src/core
parent4a0baa842df834c752398122fdc9307223a26ac8 (diff)
[Ide] Allow string parser placeholders in template scan path
With the new templating engine the template's scan path can now contain string parser placeholders that will be expanded by having the path parsed by the StringParserService's Parse method.
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngine.cs16
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs2
3 files changed, 19 insertions, 6 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs
index a50d80c12e..86225fc1e2 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/TemplateExtensionNode.cs
@@ -45,6 +45,13 @@ namespace MonoDevelop.Ide.Codons
public string ScanPath {
get {
+ // If the path starts with '${' then the path contains a placeholder
+ // that the StringParserService will replace. The path is returned
+ // without calling Addin.GetFilePath to prevent the addin directory
+ // being prefixed to the path.
+ if (path != null && path.StartsWith ("${", StringComparison.Ordinal)) {
+ return path;
+ }
return Addin.GetFilePath (path);
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngine.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngine.cs
index 1933a95d70..0962724bf0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngine.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngine.cs
@@ -1,4 +1,4 @@
-//
+//
// MicrosoftTemplateEngine.cs
//
// Author:
@@ -86,12 +86,18 @@ namespace MonoDevelop.Ide.Templates
paths.DeleteDirectory (paths.User.BaseDir);//Delete cache
var settingsLoader = (SettingsLoader)environmentSettings.SettingsLoader;
- foreach (var scanPath in projectTemplateNodes.Select (t => t.ScanPath).Distinct ()) {
- settingsLoader.UserTemplateCache.Scan (scanPath);
+ foreach (var path in projectTemplateNodes.Select (t => t.ScanPath).Distinct ()) {
+ string scanPath = StringParserService.Parse (path);
+ if (!string.IsNullOrEmpty (scanPath)) {
+ settingsLoader.UserTemplateCache.Scan (scanPath);
+ }
}
- foreach (var scanPath in itemTemplateNodes.Select (t => t.ScanPath).Distinct ()) {
- settingsLoader.UserTemplateCache.Scan (scanPath);
+ foreach (var path in itemTemplateNodes.Select (t => t.ScanPath).Distinct ()) {
+ string scanPath = StringParserService.Parse (path);
+ if (!string.IsNullOrEmpty (scanPath)) {
+ settingsLoader.UserTemplateCache.Scan (scanPath);
+ }
}
settingsLoader.Save ();
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 bd80e8d0ba..6724b41f39 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/MicrosoftTemplateEngineProjectTemplatingProvider.cs
@@ -1,4 +1,4 @@
-//
+//
// MicrosoftTemplateEngineProjectTemplatingProvider.cs
//
// Author: