diff options
author | Mike Krüger <mkrueger@novell.com> | 2009-08-28 09:33:29 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2009-08-28 09:33:29 +0400 |
commit | c603eac2897810bbc94a1bca4c22e4cc4435d136 (patch) | |
tree | 5090dafbb38ae60b65fe4e4cd5cb55c00891a4ac /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates | |
parent | 2f0871cbf4ad694b826b8e399bc03d46c0041d27 (diff) |
* MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs:
* MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs: Fixed
'Bug 502880 - Cannot create file with hypen in the name'.
svn path=/trunk/monodevelop/; revision=140857
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs | 5 | ||||
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs | 18 |
2 files changed, 20 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs index 7e36c2540a..059467137b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/FileDescriptionTemplate.cs @@ -81,7 +81,8 @@ namespace MonoDevelop.Ide.Templates public virtual bool IsValidName (string name, string language) { - if (name.Length > 0) { + return name.IndexOfAny (Path.GetInvalidFileNameChars ()) == -1; +/* if (name.Length > 0) { if (language != null && language.Length > 0) { IDotNetLanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName (language) as IDotNetLanguageBinding; if (binding != null) { @@ -93,7 +94,7 @@ namespace MonoDevelop.Ide.Templates return name.IndexOfAny (Path.GetInvalidFileNameChars ()) == -1; } else - return false; + return false;*/ } public virtual bool SupportsProject (Project project, string projectPath) diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs index 965433eed0..310f2b5df6 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs @@ -38,6 +38,7 @@ using MonoDevelop.Projects; using MonoDevelop.Projects.Text; using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.StandardHeader; +using System.Text; namespace MonoDevelop.Ide.Templates { @@ -294,7 +295,7 @@ namespace MonoDevelop.Ide.Templates while (Path.GetExtension (identifier).Length > 0) identifier = Path.GetFileNameWithoutExtension (identifier); - tags ["Name"] = identifier; + tags ["Name"] = CreateIdentifierName (identifier); tags ["FullName"] = ns.Length > 0 ? ns + "." + identifier : identifier; //some .NET languages may be able to use keywords as identifiers if they're escaped @@ -330,6 +331,21 @@ namespace MonoDevelop.Ide.Templates } } + static string CreateIdentifierName (string identifier) + { + StringBuilder result = new StringBuilder (); + for (int i = 0; i < identifier.Length; i++) { + char ch = identifier[i]; + if (i != 0 && Char.IsLetterOrDigit (ch) || i == 0 && Char.IsLetter (ch) || ch == '_') { + result.Append (ch); + } else { + result.Append ('_'); + } + } + return result.ToString (); + } + + protected ILanguageBinding GetLanguageBinding (string language) { ILanguageBinding binding = LanguageBindingService.GetBindingPerLanguageName (language); |