Browse Source

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
shortcuts
Daniel Grunwald 19 years ago
parent
commit
ff3c0cbdfa
  1. 65
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs
  2. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs
  3. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs
  4. 5
      src/Main/Base/Project/Src/Services/AmbienceService/AmbienceReflectionDecorator.cs
  5. 72
      src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs
  6. 7
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  7. 10
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs
  8. 2
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs
  9. 110
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs
  10. 82
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs
  11. 120
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs

65
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs

@ -98,7 +98,7 @@ namespace Grunwald.BooBinding @@ -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 @@ -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("<i>");
@ -170,7 +170,7 @@ namespace Grunwald.BooBinding @@ -170,7 +170,7 @@ namespace Grunwald.BooBinding
builder.Append("</i>");
}
if (ShowModifiers) {
if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("callable");
@ -205,7 +205,7 @@ namespace Grunwald.BooBinding @@ -205,7 +205,7 @@ namespace Grunwald.BooBinding
if (IncludeHTMLMarkup) {
builder.Append("</b>");
}
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 @@ -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("<br>");
@ -231,7 +231,8 @@ namespace Grunwald.BooBinding @@ -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 @@ -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 @@ -252,7 +253,7 @@ namespace Grunwald.BooBinding
}
}
if (IncludeBodies) {
if (IncludeBody) {
builder.Append(":\n");
}
@ -268,7 +269,7 @@ namespace Grunwald.BooBinding @@ -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("<i>");
@ -316,7 +317,7 @@ namespace Grunwald.BooBinding @@ -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 @@ -346,7 +347,7 @@ namespace Grunwald.BooBinding
}
}
if (property.Parameters.Count > 0) {
if (ShowParameterList && property.Parameters.Count > 0) {
builder.Append('[');
if (IncludeHTMLMarkup) builder.Append("<br>");
@ -367,7 +368,7 @@ namespace Grunwald.BooBinding @@ -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 @@ -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("<b>");
@ -422,13 +425,15 @@ namespace Grunwald.BooBinding @@ -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("<b>");
@ -448,7 +453,7 @@ namespace Grunwald.BooBinding @@ -448,7 +453,7 @@ namespace Grunwald.BooBinding
builder.Append("</b>");
}
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 @@ -457,20 +462,22 @@ namespace Grunwald.BooBinding
builder.Append(']');
}
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (ShowParameterList) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
}
builder.Append(')');
}
builder.Append(')');
if (m.ReturnType != null && ShowReturnType) {
builder.Append(" as ");
builder.Append(Convert(m.ReturnType));
@ -519,7 +526,7 @@ namespace Grunwald.BooBinding @@ -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);

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpCompletionBinding.cs

@ -136,7 +136,7 @@ namespace CSharpBinding @@ -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;

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/VBNetCompletionBinding.cs

@ -133,7 +133,7 @@ namespace VBNetBinding @@ -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;

5
src/Main/Base/Project/Src/Services/AmbienceService/AmbienceReflectionDecorator.cs

@ -26,11 +26,6 @@ namespace ICSharpCode.SharpDevelop @@ -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);

72
src/Main/Base/Project/Src/Services/AmbienceService/NetAmbience.cs

@ -14,16 +14,11 @@ namespace ICSharpCode.SharpDevelop @@ -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 @@ -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 @@ -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 @@ -92,7 +87,7 @@ namespace ICSharpCode.SharpDevelop
}
}
if (IncludeBodies) {
if (IncludeBody) {
builder.Append("\n{");
}
@ -107,12 +102,12 @@ namespace ICSharpCode.SharpDevelop @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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;

7
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -403,14 +403,13 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -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 ");

10
src/Main/Base/Project/Src/TextEditor/Gui/Editor/CompletionWindow/CodeCompletionData.cs

@ -130,7 +130,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -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 @@ -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 @@ -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 @@ -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 @@ -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);

2
src/Main/Base/Project/Src/TextEditor/Gui/Editor/InsightWindow/MethodInsightDataProvider.cs

@ -51,7 +51,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -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) {

110
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs

@ -10,29 +10,70 @@ using System; @@ -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
{
/// <summary>
/// Convert only the name.
/// </summary>
None = 0,
/// <summary>
/// Show the parameter list
/// </summary>
ShowParameterList = 1,
/// <summary>
/// Show names for parameters
/// </summary>
ShowParameterNames = 2,
/// <summary>
/// Show the accessibility (private, public, etc.)
/// </summary>
ShowAccessibility = 4,
/// <summary>
/// Show the definition key word (class, struct, Sub, Function, etc.)
/// </summary>
ShowDefinitionKeyWord = 8,
/// <summary>
/// Show the fully qualified name for the member
/// </summary>
UseFullyQualifiedMemberNames = 0x10,
/// <summary>
/// Show modifiers (virtual, override, etc.)
/// </summary>
ShowModifiers = 0x20,
/// <summary>
/// Show the inheritance declaration
/// </summary>
ShowInheritanceList = 0x40,
IncludeHTMLMarkup = 0x80,
/// <summary>
/// Show the return type
/// </summary>
ShowReturnType = 0x100,
/// <summary>
/// Use fully qualified names for return type and parameters.
/// </summary>
UseFullyQualifiedTypeNames = 0x200,
/// <summary>
/// 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.
/// </summary>
IncludeBody = 0x400,
/// <summary>
/// Show the list of type arguments on method and class declarations.
/// Type arguments for parameter/return types are always shown.
/// </summary>
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 @@ -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 @@ -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 @@ -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);

82
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs

@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -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 @@ -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("<i>");
@ -107,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -107,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("</i>");
}
if (ShowModifiers) {
if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("delegate");
@ -150,7 +150,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -150,7 +150,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
if (IncludeHTMLMarkup) {
builder.Append("</b>");
}
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 @@ -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("<br>");
@ -189,7 +189,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -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 @@ -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("<i>");
@ -218,16 +218,22 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -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("</i>");
}
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 @@ -246,7 +252,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("</b>");
}
if (IncludeBodies) builder.Append(";");
if (IncludeBody) builder.Append(";");
return builder.ToString();
}
@ -255,7 +261,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -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 @@ -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 @@ -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("<br>");
@ -306,7 +308,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -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 @@ -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 @@ -353,7 +357,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("</b>");
}
if (IncludeBodies) builder.Append(";");
if (IncludeBody) builder.Append(";");
return builder.ToString();
}
@ -361,7 +365,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -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 @@ -394,7 +398,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("</b>");
}
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 @@ -403,23 +407,25 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append('>');
}
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (m.IsExtensionMethod) builder.Append("this ");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (ShowParameterList) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (m.IsExtensionMethod) builder.Append("this ");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
}
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 @@ -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);

120
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs

@ -39,11 +39,13 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -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 @@ -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 @@ -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("<i>");
@ -98,7 +100,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -98,7 +100,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("</i>");
}
if (ShowModifiers) {
if (ShowDefinitionKeyWord) {
switch (c.ClassType) {
case ClassType.Delegate:
builder.Append("Delegate ");
@ -149,7 +151,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -149,7 +151,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("</b>");
}
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 @@ -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("<br>");
@ -176,7 +178,8 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -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 @@ -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 @@ -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("<i>");
@ -279,22 +281,25 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -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 @@ -311,7 +316,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("</b>");
}
if (property.Parameters.Count > 0) {
if (ShowParameterList && property.Parameters.Count > 0) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
@ -339,13 +344,15 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -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("<b>");
@ -376,12 +383,12 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -376,12 +383,12 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("<Extension> ");
}
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 @@ -404,7 +411,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("</b>");
}
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 @@ -413,20 +420,22 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(')');
}
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (ShowParameterList) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
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("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
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 @@ -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 @@ -493,24 +502,23 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string Convert(IParameter param)
{
StringBuilder builder = new StringBuilder();
if (IncludeHTMLMarkup) {
builder.Append("<i>");
}
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("</i>");
}
if (ShowParameterNames) {
if (IncludeHTMLMarkup) {
builder.Append("<i>");
}
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("</i>");
}
builder.Append(param.Name);
builder.Append(" As ");
}

Loading…
Cancel
Save