Browse Source

Fixed forum-16159: dots in folder names stripped from namespaces.

Fixed conversion of abstract properties to Boo.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2470 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
51e8e3aade
  1. 4
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorTypeMembers.cs
  2. 1
      src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Test/MemberTests.cs
  3. 23
      src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs
  4. 2
      src/Main/Base/Project/Src/Project/CustomTool.cs

4
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Project/ConvertVisitorTypeMembers.cs

@ -195,7 +195,7 @@ namespace NRefactoryToBooConverter @@ -195,7 +195,7 @@ namespace NRefactoryToBooConverter
m.Getter = new B.Method(GetLexicalInfo(propertyDeclaration.GetRegion));
if (propertyDeclaration.GetRegion != null) {
ConvertAttributes(propertyDeclaration.GetRegion.Attributes, m.Getter.Attributes);
m.Modifiers = ConvertModifier(propertyDeclaration.GetRegion, m.Visibility);
m.Getter.Modifiers = ConvertModifier(propertyDeclaration.GetRegion, m.Visibility);
m.Getter.Body = ConvertMethodBlock(propertyDeclaration.GetRegion.Block);
m.Getter.ReturnType = m.Type;
}
@ -204,7 +204,7 @@ namespace NRefactoryToBooConverter @@ -204,7 +204,7 @@ namespace NRefactoryToBooConverter
m.Setter = new B.Method(GetLexicalInfo(propertyDeclaration.SetRegion));
if (propertyDeclaration.SetRegion != null) {
ConvertAttributes(propertyDeclaration.SetRegion.Attributes, m.Setter.Attributes);
m.Modifiers = ConvertModifier(propertyDeclaration.SetRegion, m.Visibility);
m.Setter.Modifiers = ConvertModifier(propertyDeclaration.SetRegion, m.Visibility);
m.Setter.Body = ConvertMethodBlock(propertyDeclaration.SetRegion.Block);
}
}

1
src/AddIns/BackendBindings/Boo/NRefactoryToBooConverter/Test/MemberTests.cs

@ -228,7 +228,6 @@ namespace NRefactoryToBooConverter.Tests @@ -228,7 +228,6 @@ namespace NRefactoryToBooConverter.Tests
}
[Test]
[Ignore("Fix requires change to Boo.Lang.Compiler.dll")]
public void AbstractProperty()
{
TestInClass("public abstract string Prop { get; }", "public abstract Prop as System.String:\n\tget:\n\t\tpass");

23
src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs

@ -405,22 +405,25 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -405,22 +405,25 @@ namespace ICSharpCode.SharpDevelop.Gui
createdFiles.Add(new KeyValuePair<string, FileDescriptionTemplate>(parsedFileName, newfile));
}
internal static string GenerateValidClassName(string className)
internal static string GenerateValidClassOrNamespaceName(string className, bool allowDot)
{
int idx = 0;
while (idx < className.Length && className[idx] != '_' && !Char.IsLetter(className[idx])) {
++idx;
}
if (className == null)
throw new ArgumentNullException("className");
className = className.Trim();
if (className.Length == 0)
return string.Empty;
StringBuilder nameBuilder = new StringBuilder();
for (; idx < className.Length; ++idx) {
if (className[0] != '_' && !char.IsLetter(className, 0))
nameBuilder.Append('_');
for (int idx = 0; idx < className.Length; ++idx) {
if (Char.IsLetterOrDigit(className[idx]) || className[idx] == '_') {
nameBuilder.Append(className[idx]);
}
if (className[idx] == ' ' || className[idx] == '-' ) {
} else if (className[idx] == '.' && allowDot) {
nameBuilder.Append('.');
} else {
nameBuilder.Append('_');
}
}
return nameBuilder.ToString();
}
@ -467,7 +470,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -467,7 +470,7 @@ namespace ICSharpCode.SharpDevelop.Gui
StringParser.Properties["Extension"] = Path.GetExtension(fileName);
StringParser.Properties["Path"] = Path.GetDirectoryName(fileName);
StringParser.Properties["ClassName"] = GenerateValidClassName(Path.GetFileNameWithoutExtension(fileName));
StringParser.Properties["ClassName"] = GenerateValidClassOrNamespaceName(Path.GetFileNameWithoutExtension(fileName), false);
if (item.Template.WizardPath != null) {

2
src/Main/Base/Project/Src/Project/CustomTool.cs

@ -438,7 +438,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -438,7 +438,7 @@ namespace ICSharpCode.SharpDevelop.Project
if (subdir.Equals("source", StringComparison.OrdinalIgnoreCase))
continue;
standardNameSpace.Append('.');
standardNameSpace.Append(NewFileDialog.GenerateValidClassName(subdir));
standardNameSpace.Append(NewFileDialog.GenerateValidClassOrNamespaceName(subdir, true));
}
return standardNameSpace.ToString();
}

Loading…
Cancel
Save