diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs
index 3eaabdd19c..793a8e2fd0 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs
@@ -98,7 +98,7 @@ namespace Grunwald.BooBinding
return (modifier & query) == query;
}
- public override string Convert(ModifierEnum modifier)
+ string ConvertAccessibility(ModifierEnum modifier)
{
if (ShowAccessibility) {
if (ModifierIsSet(modifier, ModifierEnum.Public)) {
@@ -143,7 +143,7 @@ namespace Grunwald.BooBinding
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(c.Modifiers));
+ builder.Append(ConvertAccessibility(c.Modifiers));
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -170,7 +170,7 @@ namespace Grunwald.BooBinding
builder.Append("");
}
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("callable");
@@ -205,7 +205,7 @@ namespace Grunwald.BooBinding
if (IncludeHTMLMarkup) {
builder.Append("");
}
- if (c.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && c.TypeParameters.Count > 0) {
builder.Append("[of ");
for (int i = 0; i < c.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -214,7 +214,7 @@ namespace Grunwald.BooBinding
builder.Append(']');
}
- if (ShowReturnType && c.ClassType == ClassType.Delegate) {
+ if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append(" (");
if (IncludeHTMLMarkup) builder.Append("
");
@@ -231,7 +231,8 @@ namespace Grunwald.BooBinding
}
}
builder.Append(')');
-
+ }
+ if (ShowReturnType && c.ClassType == ClassType.Delegate) {
foreach(IMethod m in c.Methods) {
if (m.Name != "Invoke") continue;
@@ -239,7 +240,7 @@ namespace Grunwald.BooBinding
builder.Append(Convert(m.ReturnType));
}
- } else if (ShowInheritanceList) {
+ } else if (ShowInheritanceList && c.ClassType != ClassType.Delegate) {
if (c.BaseTypes.Count > 0) {
builder.Append("(");
for (int i = 0; i < c.BaseTypes.Count; ++i) {
@@ -252,7 +253,7 @@ namespace Grunwald.BooBinding
}
}
- if (IncludeBodies) {
+ if (IncludeBody) {
builder.Append(":\n");
}
@@ -268,7 +269,7 @@ namespace Grunwald.BooBinding
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(field.Modifiers));
+ builder.Append(ConvertAccessibility(field.Modifiers));
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -316,7 +317,7 @@ namespace Grunwald.BooBinding
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(property.Modifiers));
+ builder.Append(ConvertAccessibility(property.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(property));
@@ -346,7 +347,7 @@ namespace Grunwald.BooBinding
}
}
- if (property.Parameters.Count > 0) {
+ if (ShowParameterList && property.Parameters.Count > 0) {
builder.Append('[');
if (IncludeHTMLMarkup) builder.Append("
");
@@ -367,7 +368,7 @@ namespace Grunwald.BooBinding
builder.Append(Convert(property.ReturnType));
}
- if (IncludeBodies) {
+ if (IncludeBody) {
builder.Append(":");
if (property.CanGet) {
@@ -385,13 +386,15 @@ namespace Grunwald.BooBinding
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(e.Modifiers));
+ builder.Append(ConvertAccessibility(e.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(e));
}
- builder.Append("event ");
+ if (ShowDefinitionKeyWord) {
+ builder.Append("event ");
+ }
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -422,13 +425,15 @@ namespace Grunwald.BooBinding
builder.Append("[Extension] ");
}
- builder.Append(Convert(m.Modifiers));
+ builder.Append(ConvertAccessibility(m.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(m));
}
- builder.Append("def ");
+ if (ShowDefinitionKeyWord) {
+ builder.Append("def ");
+ }
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -448,7 +453,7 @@ namespace Grunwald.BooBinding
builder.Append("");
}
- if (m.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && m.TypeParameters.Count > 0) {
builder.Append("[of ");
for (int i = 0; i < m.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -457,20 +462,22 @@ namespace Grunwald.BooBinding
builder.Append(']');
}
- builder.Append("(");
- if (IncludeHTMLMarkup) builder.Append("
");
-
- for (int i = 0; i < m.Parameters.Count; ++i) {
- if (IncludeHTMLMarkup) builder.Append(" ");
- builder.Append(Convert(m.Parameters[i]));
- if (i + 1 < m.Parameters.Count) {
- builder.Append(", ");
- }
+ if (ShowParameterList) {
+ builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("
");
+
+ for (int i = 0; i < m.Parameters.Count; ++i) {
+ if (IncludeHTMLMarkup) builder.Append(" ");
+ builder.Append(Convert(m.Parameters[i]));
+ if (i + 1 < m.Parameters.Count) {
+ builder.Append(", ");
+ }
+ if (IncludeHTMLMarkup) builder.Append("
");
+ }
+
+ builder.Append(')');
}
- builder.Append(')');
-
if (m.ReturnType != null && ShowReturnType) {
builder.Append(" as ");
builder.Append(Convert(m.ReturnType));
@@ -519,7 +526,7 @@ namespace Grunwald.BooBinding
if (fullName != null && typeConversionTable.ContainsKey(fullName)) {
builder.Append(typeConversionTable[fullName].ToString());
} else {
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedTypeNames) {
builder.Append(fullName);
} else {
builder.Append(returnType.Name);
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
index c08f67b52a..f0ca64199f 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
+++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
@@ -136,7 +136,7 @@ namespace CSharpBinding
if (CodeGenerator.CanUseShortTypeName(rr.ResolvedType, context))
CSharpAmbience.Instance.ConversionFlags = ConversionFlags.None;
else
- CSharpAmbience.Instance.ConversionFlags = ConversionFlags.UseFullyQualifiedNames;
+ CSharpAmbience.Instance.ConversionFlags = ConversionFlags.UseFullyQualifiedTypeNames;
string typeName = CSharpAmbience.Instance.Convert(rr.ResolvedType);
editor.Document.Replace(curLine.Offset + typeToken.col - 1, 1, typeName);
editor.ActiveTextAreaControl.Caret.Column += typeName.Length - 1;
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs
index 3835a4a370..fadc451d20 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs
+++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs
@@ -133,7 +133,7 @@ namespace VBNetBinding
if (CodeGenerator.CanUseShortTypeName(rr.ResolvedType, context))
VBNetAmbience.Instance.ConversionFlags = ConversionFlags.None;
else
- VBNetAmbience.Instance.ConversionFlags = ConversionFlags.UseFullyQualifiedNames;
+ VBNetAmbience.Instance.ConversionFlags = ConversionFlags.UseFullyQualifiedTypeNames;
string typeName = VBNetAmbience.Instance.Convert(rr.ResolvedType);
editor.Document.Replace(curLine.Offset + t1.col - 1, 1, typeName);
editor.ActiveTextAreaControl.Caret.Column += typeName.Length - 1;
diff --git a/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceReflectionDecorator.cs b/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceReflectionDecorator.cs
index 9c67421249..266b2e5576 100644
--- a/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceReflectionDecorator.cs
+++ b/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceReflectionDecorator.cs
@@ -26,11 +26,6 @@ namespace ICSharpCode.SharpDevelop
}
}
- public string Convert(ModifierEnum modifier)
- {
- return conv.Convert(modifier);
- }
-
public string Convert(IClass c)
{
return conv.Convert(c);
diff --git a/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs b/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs
index d4b05bfa5b..94107d5910 100644
--- a/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs
+++ b/src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs
@@ -14,16 +14,11 @@ namespace ICSharpCode.SharpDevelop
{
public class NetAmbience : AbstractAmbience
{
- public override string Convert(ModifierEnum modifier)
- {
- return "";
- }
-
public override string Convert(IClass c)
{
StringBuilder builder = new StringBuilder();
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("Delegate");
@@ -47,12 +42,12 @@ namespace ICSharpCode.SharpDevelop
builder.Append(' ');
}
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedMemberNames) {
builder.Append(c.FullyQualifiedName);
} else {
builder.Append(c.Name);
}
- if (c.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && c.TypeParameters.Count > 0) {
builder.Append('<');
for (int i = 0; i < c.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -61,7 +56,7 @@ namespace ICSharpCode.SharpDevelop
builder.Append('>');
}
- if (c.ClassType == ClassType.Delegate) {
+ if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append('(');
foreach (IMethod m in c.Methods) {
@@ -92,7 +87,7 @@ namespace ICSharpCode.SharpDevelop
}
}
- if (IncludeBodies) {
+ if (IncludeBody) {
builder.Append("\n{");
}
@@ -107,12 +102,12 @@ namespace ICSharpCode.SharpDevelop
public override string Convert(IField field)
{
StringBuilder builder = new StringBuilder();
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
builder.Append("Field");
builder.Append(' ');
}
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedMemberNames) {
builder.Append(field.FullyQualifiedName);
} else {
builder.Append(field.Name);
@@ -129,31 +124,32 @@ namespace ICSharpCode.SharpDevelop
public override string Convert(IProperty property)
{
StringBuilder builder = new StringBuilder();
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
if (property.IsIndexer)
builder.Append("Indexer ");
else
builder.Append("Property ");
}
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedMemberNames) {
builder.Append(property.FullyQualifiedName);
} else {
builder.Append(property.Name);
}
- if (property.Parameters.Count > 0) builder.Append('(');
-
- for (int i = 0; i < property.Parameters.Count; ++i) {
- builder.Append(Convert(property.Parameters[i]));
- if (i + 1 < property.Parameters.Count) {
- builder.Append(", ");
+ if (ShowParameterList) {
+ if (property.Parameters.Count > 0) builder.Append('(');
+
+ for (int i = 0; i < property.Parameters.Count; ++i) {
+ builder.Append(Convert(property.Parameters[i]));
+ if (i + 1 < property.Parameters.Count) {
+ builder.Append(", ");
+ }
}
+
+ if (property.Parameters.Count > 0) builder.Append(')');
}
- if (property.Parameters.Count > 0) builder.Append(')');
-
-
if (property.ReturnType != null && ShowReturnType) {
builder.Append(" : ");
builder.Append(Convert(property.ReturnType));
@@ -164,11 +160,11 @@ namespace ICSharpCode.SharpDevelop
public override string Convert(IEvent e)
{
StringBuilder builder = new StringBuilder();
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
builder.Append("Event ");
}
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedMemberNames) {
builder.Append(e.FullyQualifiedName);
} else {
builder.Append(e.Name);
@@ -183,19 +179,19 @@ namespace ICSharpCode.SharpDevelop
public override string Convert(IMethod m)
{
StringBuilder builder = new StringBuilder();
- if (ShowModifiers) {
- if (m.IsExtensionMethod) {
+ if (ShowDefinitionKeyWord) {
+ if (ShowModifiers && m.IsExtensionMethod) {
builder.Append("[Extension] ");
}
builder.Append("Method ");
}
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedMemberNames) {
builder.Append(m.FullyQualifiedName);
} else {
builder.Append(m.Name);
}
- if (m.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && m.TypeParameters.Count > 0) {
builder.Append('<');
for (int i = 0; i < m.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -203,21 +199,23 @@ namespace ICSharpCode.SharpDevelop
}
builder.Append('>');
}
- builder.Append('(');
- for (int i = 0; i < m.Parameters.Count; ++i) {
- builder.Append(Convert(m.Parameters[i]));
- if (i + 1 < m.Parameters.Count) {
- builder.Append(", ");
+ if (ShowParameterList) {
+ builder.Append('(');
+ for (int i = 0; i < m.Parameters.Count; ++i) {
+ builder.Append(Convert(m.Parameters[i]));
+ if (i + 1 < m.Parameters.Count) {
+ builder.Append(", ");
+ }
}
+ builder.Append(")");
}
- builder.Append(")");
if (m.ReturnType != null && ShowReturnType) {
builder.Append(" : ");
builder.Append(Convert(m.ReturnType));
}
- if (IncludeBodies) {
+ if (IncludeBody) {
builder.Append(" {");
}
@@ -237,7 +235,7 @@ namespace ICSharpCode.SharpDevelop
StringBuilder builder = new StringBuilder();
string name = returnType.DotNetName;
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedTypeNames) {
builder.Append(name);
} else {
int pos = returnType.Namespace.Length;
diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
index 2933ba74ab..db674e591d 100644
--- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
+++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
@@ -403,14 +403,13 @@ namespace ICSharpCode.SharpDevelop.Debugging
if (result is MixedResolveResult)
return GetText(((MixedResolveResult)result).PrimaryResult, expression, out debuggerCanShowValue);
IAmbience ambience = AmbienceService.CurrentAmbience;
- ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.ShowAccessibility;
+ ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.UseFullyQualifiedMemberNames;
if (result is MemberResolveResult) {
return GetMemberText(ambience, ((MemberResolveResult)result).ResolvedMember, expression, out debuggerCanShowValue);
} else if (result is LocalResolveResult) {
LocalResolveResult rr = (LocalResolveResult)result;
- ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedNames
- | ConversionFlags.ShowReturnType
- | ConversionFlags.QualifiedNamesOnlyForReturnTypes;
+ ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedTypeNames
+ | ConversionFlags.ShowReturnType | ConversionFlags.ShowDefinitionKeyWord;
StringBuilder b = new StringBuilder();
if (rr.IsParameter)
b.Append("parameter ");
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
index c7c1b80b81..ea28a36393 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
@@ -130,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
imageIndex = ClassBrowserIconService.GetIcon(c);
ambience.ConversionFlags = ConversionFlags.None;
text = ambience.Convert(c);
- ambience.ConversionFlags = ConversionFlags.UseFullyQualifiedNames | ConversionFlags.ShowReturnType | ConversionFlags.ShowModifiers;
+ ambience.ConversionFlags = ConversionFlags.StandardConversionFlags | ConversionFlags.UseFullyQualifiedMemberNames;
description = ambience.Convert(c);
documentation = c.Documentation;
GetPriority(c.DotNetName);
@@ -140,7 +140,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
member = method;
ambience = AmbienceService.CurrentAmbience;
- ambience.ConversionFlags = ConversionFlags.ShowReturnType | ConversionFlags.ShowParameterNames | ConversionFlags.ShowModifiers;
+ ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
imageIndex = ClassBrowserIconService.GetIcon(method);
text = method.Name;
description = ambience.Convert(method);
@@ -152,7 +152,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
member = field;
ambience = AmbienceService.CurrentAmbience;
- ambience.ConversionFlags = ConversionFlags.ShowReturnType | ConversionFlags.ShowParameterNames | ConversionFlags.ShowModifiers;
+ ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
imageIndex = ClassBrowserIconService.GetIcon(field);
text = field.Name;
description = ambience.Convert(field);
@@ -164,7 +164,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
member = property;
ambience = AmbienceService.CurrentAmbience;
- ambience.ConversionFlags = ConversionFlags.ShowReturnType | ConversionFlags.ShowParameterNames | ConversionFlags.ShowModifiers;
+ ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
imageIndex = ClassBrowserIconService.GetIcon(property);
text = property.Name;
description = ambience.Convert(property);
@@ -176,7 +176,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
member = e;
ambience = AmbienceService.CurrentAmbience;
- ambience.ConversionFlags = ConversionFlags.ShowReturnType | ConversionFlags.ShowParameterNames | ConversionFlags.ShowModifiers;
+ ambience.ConversionFlags = ConversionFlags.StandardConversionFlags;
imageIndex = ClassBrowserIconService.GetIcon(e);
text = e.Name;
description = ambience.Convert(e);
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs
index 3fad50613f..f628ccb783 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs
@@ -51,7 +51,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
{
IMember method = methods[number];
IAmbience conv = AmbienceService.CurrentAmbience;
- conv.ConversionFlags = ConversionFlags.StandardConversionFlags;
+ conv.ConversionFlags = ConversionFlags.StandardConversionFlags| ConversionFlags.UseFullyQualifiedMemberNames;
string documentation = method.Documentation;
string text;
if (method is IMethod) {
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs
index ab05881463..239d1312e2 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs
@@ -10,29 +10,70 @@ using System;
namespace ICSharpCode.SharpDevelop.Dom
{
[Flags]
- public enum ConversionFlags {
- None = 0,
- ShowParameterNames = 1,
- ShowAccessibility = 16,
- UseFullyQualifiedNames = 2,
- ShowModifiers = 4,
- ShowInheritanceList = 8,
- IncludeHTMLMarkup = 32,
- QualifiedNamesOnlyForReturnTypes = 128,
- IncludeBodies = 256,
- ShowReturnType = 512,
+ public enum ConversionFlags
+ {
+ ///
+ /// Convert only the name.
+ ///
+ None = 0,
+ ///
+ /// Show the parameter list
+ ///
+ ShowParameterList = 1,
+ ///
+ /// Show names for parameters
+ ///
+ ShowParameterNames = 2,
+ ///
+ /// Show the accessibility (private, public, etc.)
+ ///
+ ShowAccessibility = 4,
+ ///
+ /// Show the definition key word (class, struct, Sub, Function, etc.)
+ ///
+ ShowDefinitionKeyWord = 8,
+ ///
+ /// Show the fully qualified name for the member
+ ///
+ UseFullyQualifiedMemberNames = 0x10,
+ ///
+ /// Show modifiers (virtual, override, etc.)
+ ///
+ ShowModifiers = 0x20,
+ ///
+ /// Show the inheritance declaration
+ ///
+ ShowInheritanceList = 0x40,
+ IncludeHTMLMarkup = 0x80,
+ ///
+ /// Show the return type
+ ///
+ ShowReturnType = 0x100,
+ ///
+ /// Use fully qualified names for return type and parameters.
+ ///
+ UseFullyQualifiedTypeNames = 0x200,
+ ///
+ /// Include opening brace (or equivalent) for methods or classes;
+ /// or semicolon (or equivalent) for field, events.
+ /// For properties, a block indicating if there is a getter/setter is included.
+ ///
+ IncludeBody = 0x400,
+ ///
+ /// Show the list of type arguments on method and class declarations.
+ /// Type arguments for parameter/return types are always shown.
+ ///
+ ShowTypeParameterList = 0x800,
StandardConversionFlags = ShowParameterNames |
- UseFullyQualifiedNames |
- ShowReturnType |
- ShowModifiers,
-
- All = ShowParameterNames |
ShowAccessibility |
- UseFullyQualifiedNames |
- ShowModifiers |
+ ShowParameterList |
ShowReturnType |
- ShowInheritanceList,
+ ShowModifiers |
+ ShowTypeParameterList |
+ ShowDefinitionKeyWord,
+
+ All = 0xfff,
}
public interface IAmbience
@@ -42,8 +83,6 @@ namespace ICSharpCode.SharpDevelop.Dom
set;
}
- string Convert(ModifierEnum modifier);
-
string Convert(IClass c);
string ConvertEnd(IClass c);
@@ -94,9 +133,21 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
- public bool UseFullyQualifiedNames {
+ public bool UseFullyQualifiedTypeNames {
get {
- return (conversionFlags & ConversionFlags.UseFullyQualifiedNames) == ConversionFlags.UseFullyQualifiedNames;
+ return (conversionFlags & ConversionFlags.UseFullyQualifiedTypeNames) == ConversionFlags.UseFullyQualifiedTypeNames;
+ }
+ }
+
+ public bool ShowDefinitionKeyWord {
+ get {
+ return (conversionFlags & ConversionFlags.ShowDefinitionKeyWord) == ConversionFlags.ShowDefinitionKeyWord;
+ }
+ }
+
+ public bool ShowParameterList {
+ get {
+ return (conversionFlags & ConversionFlags.ShowParameterList) == ConversionFlags.ShowParameterList;
}
}
@@ -120,17 +171,22 @@ namespace ICSharpCode.SharpDevelop.Dom
public bool UseFullyQualifiedMemberNames {
get {
- return UseFullyQualifiedNames && !((conversionFlags & ConversionFlags.QualifiedNamesOnlyForReturnTypes) == ConversionFlags.QualifiedNamesOnlyForReturnTypes);
+ return (conversionFlags & ConversionFlags.UseFullyQualifiedMemberNames) == ConversionFlags.UseFullyQualifiedMemberNames;
+ }
+ }
+
+ public bool IncludeBody {
+ get {
+ return (conversionFlags & ConversionFlags.IncludeBody) == ConversionFlags.IncludeBody;
}
}
- public bool IncludeBodies {
+ public bool ShowTypeParameterList {
get {
- return (conversionFlags & ConversionFlags.IncludeBodies) == ConversionFlags.IncludeBodies;
+ return (conversionFlags & ConversionFlags.ShowTypeParameterList) == ConversionFlags.ShowTypeParameterList;
}
}
- public abstract string Convert(ModifierEnum modifier);
public abstract string Convert(IClass c);
public abstract string ConvertEnd(IClass c);
public abstract string Convert(IField c);
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs
index 702bd54d55..5ae193bf21 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs
@@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
return (modifier & query) == query;
}
- public override string Convert(ModifierEnum modifier)
+ string ConvertAccessibility(ModifierEnum modifier)
{
if (ShowAccessibility) {
if (ModifierIsSet(modifier, ModifierEnum.Public)) {
@@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(c.Modifiers));
+ builder.Append(ConvertAccessibility(c.Modifiers));
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -107,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("");
}
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("delegate");
@@ -150,7 +150,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
if (IncludeHTMLMarkup) {
builder.Append("");
}
- if (c.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && c.TypeParameters.Count > 0) {
builder.Append('<');
for (int i = 0; i < c.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -159,7 +159,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append('>');
}
- if (ShowReturnType && c.ClassType == ClassType.Delegate) {
+ if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append(" (");
if (IncludeHTMLMarkup) builder.Append("
");
@@ -189,7 +189,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
}
- if (IncludeBodies) {
+ if (IncludeBody) {
builder.Append("\n{");
}
@@ -205,7 +205,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(field.Modifiers));
+ builder.Append(ConvertAccessibility(field.Modifiers));
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -218,16 +218,22 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("static ");
}
+ if (field.IsNew) {
+ builder.Append("new ");
+ }
if (field.IsReadonly) {
builder.Append("readonly ");
}
+ if ((field.Modifiers & ModifierEnum.Volatile) == ModifierEnum.Volatile) {
+ builder.Append("volatile ");
+ }
}
if (IncludeHTMLMarkup) {
builder.Append("");
}
- if (field.ReturnType != null && ShowReturnType) {
+ if (field.ReturnType != null && ShowReturnType) {
builder.Append(Convert(field.ReturnType));
builder.Append(' ');
}
@@ -246,7 +252,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("");
}
- if (IncludeBodies) builder.Append(";");
+ if (IncludeBody) builder.Append(";");
return builder.ToString();
}
@@ -255,7 +261,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(property.Modifiers));
+ builder.Append(ConvertAccessibility(property.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(property));
@@ -267,12 +273,8 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
if (property.IsIndexer) {
- if (property.DeclaringType != null) {
- if (UseFullyQualifiedMemberNames) {
- builder.Append(property.DeclaringType.FullyQualifiedName);
- } else {
- builder.Append(property.DeclaringType.Name);
- }
+ if (property.DeclaringType != null && UseFullyQualifiedMemberNames) {
+ builder.Append(property.DeclaringType.FullyQualifiedName);
builder.Append('.');
}
builder.Append("this");
@@ -290,7 +292,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
}
- if (property.Parameters.Count > 0) {
+ if (property.Parameters.Count > 0 && ShowParameterList) {
builder.Append(property.IsIndexer ? '[' : '(');
if (IncludeHTMLMarkup) builder.Append("
");
@@ -306,7 +308,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(property.IsIndexer ? ']' : ')');
}
- if (IncludeBodies) {
+ if (IncludeBody) {
builder.Append(" { ");
if (property.CanGet) {
@@ -326,13 +328,15 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(e.Modifiers));
+ builder.Append(ConvertAccessibility(e.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(e));
}
- builder.Append("event ");
+ if (ShowDefinitionKeyWord) {
+ builder.Append("event ");
+ }
if (e.ReturnType != null && ShowReturnType) {
builder.Append(Convert(e.ReturnType));
@@ -353,7 +357,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("");
}
- if (IncludeBodies) builder.Append(";");
+ if (IncludeBody) builder.Append(";");
return builder.ToString();
}
@@ -361,7 +365,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
public override string Convert(IMethod m)
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(m.Modifiers));
+ builder.Append(ConvertAccessibility(m.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(m));
@@ -394,7 +398,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("");
}
- if (m.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && m.TypeParameters.Count > 0) {
builder.Append('<');
for (int i = 0; i < m.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -403,23 +407,25 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append('>');
}
- builder.Append("(");
- if (IncludeHTMLMarkup) builder.Append("
");
-
- if (m.IsExtensionMethod) builder.Append("this ");
-
- for (int i = 0; i < m.Parameters.Count; ++i) {
- if (IncludeHTMLMarkup) builder.Append(" ");
- builder.Append(Convert(m.Parameters[i]));
- if (i + 1 < m.Parameters.Count) {
- builder.Append(", ");
- }
+ if (ShowParameterList) {
+ builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("
");
+
+ if (m.IsExtensionMethod) builder.Append("this ");
+
+ for (int i = 0; i < m.Parameters.Count; ++i) {
+ if (IncludeHTMLMarkup) builder.Append(" ");
+ builder.Append(Convert(m.Parameters[i]));
+ if (i + 1 < m.Parameters.Count) {
+ builder.Append(", ");
+ }
+ if (IncludeHTMLMarkup) builder.Append("
");
+ }
+
+ builder.Append(')');
}
- builder.Append(')');
-
- if (IncludeBodies) {
+ if (IncludeBody) {
if (m.DeclaringType != null) {
if (m.DeclaringType.ClassType == ClassType.Interface) {
builder.Append(";");
@@ -450,7 +456,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
if (fullName != null && TypeConversionTable.TryGetValue(fullName, out shortName)) {
builder.Append(shortName);
} else {
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedTypeNames) {
builder.Append(fullName);
} else {
builder.Append(returnType.Name);
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs
index 9d0641f4e1..573bb7175b 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs
@@ -39,11 +39,13 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("MustOverride ");
} else if (decoration.IsSealed) {
builder.Append("NotOverridable ");
- } else if (decoration.IsVirtual) {
+ }
+ if (decoration.IsVirtual) {
builder.Append("Overridable ");
} else if (decoration.IsOverride) {
builder.Append("Overrides ");
- } else if (decoration.IsNew) {
+ }
+ if (decoration.IsNew) {
builder.Append("Shadows ");
}
@@ -54,7 +56,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
return builder.ToString();
}
- public override string Convert(ModifierEnum modifier)
+ string ConvertAccessibility(ModifierEnum modifier)
{
StringBuilder builder = new StringBuilder();
if (ShowAccessibility) {
@@ -78,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(c.Modifiers));
+ builder.Append(ConvertAccessibility(c.Modifiers));
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -98,7 +100,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("");
}
- if (ShowModifiers) {
+ if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("Delegate ");
@@ -149,7 +151,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("");
}
- if (c.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && c.TypeParameters.Count > 0) {
builder.Append("(Of ");
for (int i = 0; i < c.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -158,7 +160,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(')');
}
- if (ShowReturnType && c.ClassType == ClassType.Delegate) {
+ if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("
");
@@ -176,7 +178,8 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
builder.Append(")");
-
+ }
+ if (ShowReturnType && c.ClassType == ClassType.Delegate) {
foreach (IMethod m in c.Methods) {
if (m.Name != "Invoke") continue;
@@ -188,8 +191,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
}
}
-
- } else if (ShowInheritanceList) {
+ } else if (ShowInheritanceList && c.ClassType != ClassType.Delegate) {
if (c.BaseTypes.Count > 0) {
builder.Append(" Inherits ");
for (int i = 0; i < c.BaseTypes.Count; ++i) {
@@ -238,7 +240,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(field.Modifiers));
+ builder.Append(ConvertAccessibility(field.Modifiers));
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -279,22 +281,25 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(property.Modifiers));
+ builder.Append(ConvertAccessibility(property.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(property));
+
+ if (property.IsIndexer) {
+ builder.Append("Default ");
+ }
+
+ if (property.CanGet && !property.CanSet) {
+ builder.Append("ReadOnly ");
+ }
+ if (property.CanSet && !property.CanGet) {
+ builder.Append("WriteOnly ");
+ }
}
- if (property.IsIndexer) {
- builder.Append("Default ");
- }
-
- if (property.CanGet && !property.CanSet) {
- builder.Append("ReadOnly ");
- }
-
- if (property.CanSet && !property.CanGet) {
- builder.Append("WriteOnly ");
+ if (ShowDefinitionKeyWord) {
+ builder.Append("Property ");
}
if (IncludeHTMLMarkup) {
@@ -311,7 +316,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("");
}
- if (property.Parameters.Count > 0) {
+ if (ShowParameterList && property.Parameters.Count > 0) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("
");
@@ -339,13 +344,15 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
{
StringBuilder builder = new StringBuilder();
- builder.Append(Convert(e.Modifiers));
+ builder.Append(ConvertAccessibility(e.Modifiers));
if (ShowModifiers) {
builder.Append(GetModifier(e));
}
- builder.Append("Event ");
+ if (ShowDefinitionKeyWord) {
+ builder.Append("Event ");
+ }
if (IncludeHTMLMarkup) {
builder.Append("");
@@ -376,12 +383,12 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(" ");
}
- builder.Append(Convert(m.Modifiers)); // show visibility
+ builder.Append(ConvertAccessibility(m.Modifiers)); // show visibility
if (ShowModifiers) {
builder.Append(GetModifier(m));
}
- if (ShowReturnType) {
+ if (ShowDefinitionKeyWord) {
if (m.ReturnType == null || m.ReturnType.FullyQualifiedName == "System.Void") {
builder.Append("Sub ");
} else {
@@ -404,7 +411,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("");
}
- if (m.TypeParameters.Count > 0) {
+ if (ShowTypeParameterList && m.TypeParameters.Count > 0) {
builder.Append("(Of ");
for (int i = 0; i < m.TypeParameters.Count; ++i) {
if (i > 0) builder.Append(", ");
@@ -413,20 +420,22 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(')');
}
- builder.Append("(");
- if (IncludeHTMLMarkup) builder.Append("
");
+ if (ShowParameterList) {
+ builder.Append("(");
+ if (IncludeHTMLMarkup) builder.Append("
");
- for (int i = 0; i < m.Parameters.Count; ++i) {
- if (IncludeHTMLMarkup) builder.Append(" ");
- builder.Append(Convert(m.Parameters[i]));
- if (i + 1 < m.Parameters.Count) {
- builder.Append(", ");
+ for (int i = 0; i < m.Parameters.Count; ++i) {
+ if (IncludeHTMLMarkup) builder.Append(" ");
+ builder.Append(Convert(m.Parameters[i]));
+ if (i + 1 < m.Parameters.Count) {
+ builder.Append(", ");
+ }
+ if (IncludeHTMLMarkup) builder.Append("
");
}
- if (IncludeHTMLMarkup) builder.Append("
");
+
+ builder.Append(')');
}
- builder.Append(')');
-
if (ShowReturnType && m.ReturnType != null && m.ReturnType.FullyQualifiedName != "System.Void") {
builder.Append(" As ");
builder.Append(Convert(m.ReturnType));
@@ -456,7 +465,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
if (fullName != null && TypeConversionTable.TryGetValue(fullName, out shortName)) {
builder.Append(shortName);
} else {
- if (UseFullyQualifiedNames) {
+ if (UseFullyQualifiedTypeNames) {
builder.Append(fullName);
} else {
builder.Append(returnType.Name);
@@ -493,24 +502,23 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string Convert(IParameter param)
{
StringBuilder builder = new StringBuilder();
+ if (IncludeHTMLMarkup) {
+ builder.Append("");
+ }
+
+ if (param.IsOptional) {
+ builder.Append("Optional ");
+ }
+ if (param.IsRef || param.IsOut) {
+ builder.Append("ByRef ");
+ } else if (param.IsParams) {
+ builder.Append("ParamArray ");
+ }
+ if (IncludeHTMLMarkup) {
+ builder.Append("");
+ }
+
if (ShowParameterNames) {
- if (IncludeHTMLMarkup) {
- builder.Append("");
- }
-
- if (param.IsOptional) {
- builder.Append("Optional ");
- }
- if (param.IsRef || param.IsOut) {
- builder.Append("ByRef ");
- } else if (param.IsParams) {
- builder.Append("ParamArray ");
- }
- if (IncludeHTMLMarkup) {
- builder.Append("");
- }
-
-
builder.Append(param.Name);
builder.Append(" As ");
}