From ff3c0cbdfa24d1c6fa21cfc7dc872d94aacf5eb8 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sat, 24 Feb 2007 15:10:46 +0000 Subject: [PATCH] Forum-13925: allow turning off the parameter list in ambience. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2396 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Boo/BooBinding/Project/Src/BooAmbience.cs | 65 +++++----- .../Project/Src/CSharpCompletionBinding.cs | 2 +- .../Project/Src/VBNetCompletionBinding.cs | 2 +- .../AmbienceReflectionDecorator.cs | 5 - .../Services/AmbienceService/NetAmbience.cs | 72 +++++------ .../Src/Services/Debugger/DebuggerService.cs | 7 +- .../CompletionWindow/CodeCompletionData.cs | 10 +- .../MethodInsightDataProvider.cs | 2 +- .../Project/Src/Ambience.cs | 110 ++++++++++++---- .../Project/Src/CSharp/CSharpAmbience.cs | 82 ++++++------ .../Project/Src/VBNet/VBNetAmbience.cs | 120 ++++++++++-------- 11 files changed, 273 insertions(+), 204 deletions(-) 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 "); }