diff options
Diffstat (limited to 'main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpAmbience.cs')
-rw-r--r-- | main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpAmbience.cs | 1372 |
1 files changed, 680 insertions, 692 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpAmbience.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpAmbience.cs index 3536c9a86c..db298762d5 100644 --- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpAmbience.cs +++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp/CSharpAmbience.cs @@ -32,16 +32,11 @@ using MonoDevelop.CSharp.Formatting; using MonoDevelop.Ide; using System.Collections.ObjectModel; using MonoDevelop.Ide.TypeSystem; -using ICSharpCode.NRefactory.TypeSystem; -using ICSharpCode.NRefactory.CSharp.Refactoring; using System.IO; -using ICSharpCode.NRefactory.CSharp.Resolver; -using ICSharpCode.NRefactory.CSharp; -using ICSharpCode.NRefactory.TypeSystem.Implementation; namespace MonoDevelop.CSharp { - class CSharpAmbience : Ambience + class CSharpAmbience : AmbienceTooltipProvider { static Dictionary<string, string> netToCSharpTypes = new Dictionary<string, string> (); static HashSet<string> keywords = new HashSet<string> (new [] { @@ -186,40 +181,33 @@ namespace MonoDevelop.CSharp netToCSharpTypes ["System.Decimal"] = "decimal"; netToCSharpTypes ["System.String"] = "string"; - classTypes [TypeKind.Class] = "class"; - classTypes [TypeKind.Enum] = "enum"; - classTypes [TypeKind.Interface] = "interface"; - classTypes [TypeKind.Struct] = "struct"; - classTypes [TypeKind.Delegate] = "delegate"; +// classTypes [TypeKind.Class] = "class"; +// classTypes [TypeKind.Enum] = "enum"; +// classTypes [TypeKind.Interface] = "interface"; +// classTypes [TypeKind.Struct] = "struct"; +// classTypes [TypeKind.Delegate] = "delegate"; } - - public CSharpAmbience () : base ("C#") - { - } - - static Dictionary<TypeKind, string> classTypes = new Dictionary<TypeKind, string> (); - - public override MonoDevelop.Ide.CodeCompletion.TooltipInformation GetTooltip (IEntity entity) +// +// public CSharpAmbience () : base ("C#") +// { +// } +// +// static Dictionary<TypeKind, string> classTypes = new Dictionary<TypeKind, string> (); +// + public override MonoDevelop.Ide.CodeCompletion.TooltipInformation GetTooltip (Microsoft.CodeAnalysis.ISymbol entity) { if (entity == null) throw new ArgumentNullException ("entity"); - return MonoDevelop.CSharp.Completion.MemberCompletionData.CreateTooltipInformation ( - entity.Compilation, - null, - null, - new CSharpFormattingPolicy (), - entity, - false, - true); + return MonoDevelop.CSharp.Completion.RoslynSymbolCompletionData.CreateTooltipInformation (null, null, entity, false, true); } - static string GetString (TypeKind classType) - { - string res; - if (classTypes.TryGetValue (classType, out res)) - return res; - return string.Empty; - } +// static string GetString (TypeKind classType) +// { +// string res; +// if (classTypes.TryGetValue (classType, out res)) +// return res; +// return string.Empty; +// } internal static string FilterName (string name) { @@ -235,334 +223,334 @@ namespace MonoDevelop.CSharp return netTypeName; } - #region implemented abstract members of MonoDevelop.Ide.TypeSystem.Ambience - public override string GetIntrinsicTypeName (string reflectionName) - { - return NetToCSharpTypeName (reflectionName); - } - - public override string SingleLineComment (string text) - { - return "// " + text; - } - - public override string GetString (string nameSpace, OutputSettings settings) - { - var result = new StringBuilder (); - if (settings.IncludeKeywords) - result.Append (settings.EmitKeyword ("namespace")); - result.Append (Format (nameSpace)); - return result.ToString (); - } - - public void AppendType (StringBuilder sb, IType type, OutputSettings settings) - { - if (type.Kind == TypeKind.Unknown) { - sb.Append (settings.IncludeMarkup ? settings.Markup (type.Name) : type.Name); - return; - } - if (type.Kind == TypeKind.TypeParameter) { - sb.Append (settings.IncludeMarkup ? settings.Markup (type.Name) : type.Name); - return; - } - if (type.DeclaringType != null) { - AppendType (sb, type.DeclaringType, settings); - sb.Append (settings.Markup (".")); - } - if (type.Namespace == "System" && type.TypeParameterCount == 0) { - switch (type.Name) { - case "Object": - sb.Append ("object"); - return; - case "Boolean": - sb.Append ("bool"); - return; - case "Char": - sb.Append ("char"); - return; - case "SByte": - sb.Append ("sbyte"); - return; - case "Byte": - sb.Append ("byte"); - return; - case "Int16": - sb.Append ("short"); - return; - case "UInt16": - sb.Append ("ushort"); - return; - case "Int32": - sb.Append ("int"); - return; - case "UInt32": - sb.Append ("uint"); - return; - case "Int64": - sb.Append ("long"); - return; - case "UInt64": - sb.Append ("ulong"); - return; - case "Single": - sb.Append ("float"); - return; - case "Double": - sb.Append ("double"); - return; - case "Decimal": - sb.Append ("decimal"); - return; - case "String": - sb.Append ("string"); - return; - case "Void": - sb.Append ("void"); - return; - } - } - - var typeWithElementType = type as TypeWithElementType; - if (typeWithElementType != null) { - AppendType (sb, typeWithElementType.ElementType, settings); - - if (typeWithElementType is PointerType) { - sb.Append (settings.Markup ("*")); - } - - if (typeWithElementType is ArrayType) { - sb.Append (settings.Markup ("[")); - sb.Append (settings.Markup (new string (',', ((ArrayType)type).Dimensions - 1))); - sb.Append (settings.Markup ("]")); - } - return; - } - - if (type.TypeArguments.Count > 0) { - if (type.Name == "Nullable" && type.Namespace == "System" && type.TypeParameterCount == 1) { - AppendType (sb, type.TypeArguments [0], settings); - sb.Append (settings.Markup ("?")); - return; - } - sb.Append (type.Name); - if (type.TypeParameterCount > 0) { - sb.Append (settings.Markup ("<")); - for (int i = 0; i < type.TypeParameterCount; i++) { - if (i > 0) - sb.Append (settings.Markup (", ")); - AppendType (sb, type.TypeArguments [i], settings); - } - sb.Append (settings.Markup (">")); - } - return; - } - - var typeDef = type as ITypeDefinition ?? type.GetDefinition (); - if (typeDef != null) { - if (settings.UseFullName) { - sb.Append (settings.IncludeMarkup ? settings.Markup (typeDef.FullName) : typeDef.FullName); - } else { - sb.Append (settings.IncludeMarkup ? settings.Markup (typeDef.Name) : typeDef.Name); - } - - if (typeDef.TypeParameterCount > 0) { - sb.Append (settings.Markup ("<")); - for (int i = 0; i < typeDef.TypeParameterCount; i++) { - if (i > 0) - sb.Append (settings.Markup (", ")); - AppendVariance (sb, typeDef.TypeParameters [i].Variance); - AppendType (sb, typeDef.TypeParameters [i], settings); - } - sb.Append (settings.Markup (">")); - } - } - } - - static void AppendVariance (StringBuilder sb, VarianceModifier variance) - { - if (variance == VarianceModifier.Contravariant) { - sb.Append ("in "); - } else if (variance == VarianceModifier.Covariant) { - sb.Append ("out "); - } - } - - protected override string GetTypeReferenceString (IType reference, OutputSettings settings) - { - if (reference == null) - return "null"; - var type = reference; - if (type.Kind == TypeKind.Unknown) { - return settings.IncludeMarkup ? settings.Markup (reference.Name) : reference.Name; - } - - if (reference.Kind == TypeKind.TypeParameter) - return settings.IncludeMarkup ? settings.Markup (reference.Name) : reference.FullName; - - var sb = new StringBuilder (); - if (type is ITypeDefinition && ((ITypeDefinition)type).IsSynthetic && ((ITypeDefinition)type).Name == "$Anonymous$") { - sb.Append ("new {"); - foreach (var property in ((ITypeDefinition)type).Properties) { - sb.AppendLine (); - sb.Append ("\t"); - sb.Append (GetTypeReferenceString (property.ReturnType, settings) ?? "?"); - sb.Append (" "); - sb.Append (settings.IncludeMarkup ? settings.Markup (property.Name) : property.Name); - sb.Append (";"); - } - sb.AppendLine (); - sb.Append ("}"); - return sb.ToString (); - } - - AppendType (sb, type, settings); - return sb.ToString (); - } - - protected override string GetTypeString (IType t, OutputSettings settings) - { - if (t.Kind == TypeKind.Unknown) { - return settings.IncludeMarkup ? settings.Markup (t.Name) : t.Name; - } - - if (t.Kind == TypeKind.TypeParameter) - return settings.IncludeMarkup ? settings.Markup (t.FullName) : t.FullName; - - var typeWithElementType = t as TypeWithElementType; - if (typeWithElementType != null) { - var sb = new StringBuilder (); - - if (typeWithElementType is PointerType) { - sb.Append (settings.Markup ("*")); - } - AppendType (sb, typeWithElementType.ElementType, settings); - - if (typeWithElementType is ArrayType) { - sb.Append (settings.Markup ("[")); - sb.Append (settings.Markup (new string (',', ((ArrayType)t).Dimensions - 1))); - sb.Append (settings.Markup ("]")); - } - return sb.ToString (); - } - - ITypeDefinition type = t.GetDefinition (); - if (type == null) - return ""; - - if (!settings.UseNETTypeNames && type.Namespace == "System" && type.TypeParameterCount == 0) { - switch (type.Name) { - case "Object": - return "object"; - case "Boolean": - return "bool"; - case "Char": - return "char"; - case "SByte": - return "sbyte"; - case "Byte": - return "byte"; - case "Int16": - return "short"; - case "UInt16": - return "ushort"; - case "Int32": - return "int"; - case "UInt32": - return "uint"; - case "Int64": - return "long"; - case "UInt64": - return "ulong"; - case "Single": - return "float"; - case "Double": - return "double"; - case "Decimal": - return "decimal"; - case "String": - return "string"; - case "Void": - return "void"; - } - } - - // output anonymous type - if (type.IsSynthetic && type.Name == "$Anonymous$") - return GetTypeReferenceString (type, settings); - - var result = new StringBuilder (); - - - var def = type; - AppendModifiers (result, settings, def); - if (settings.IncludeKeywords) - result.Append (GetString (def.Kind)); - if (result.Length > 0 && !result.ToString ().EndsWith (" ")) - result.Append (settings.Markup (" ")); - - - if (type.Kind == TypeKind.Delegate && settings.ReformatDelegates && settings.IncludeReturnType) { - var invoke = type.GetDelegateInvokeMethod (); - result.Append (GetTypeReferenceString (invoke.ReturnType, settings)); - result.Append (settings.Markup (" ")); - } - - if (settings.UseFullName && !string.IsNullOrEmpty (type.Namespace)) - result.Append ((settings.IncludeMarkup ? settings.Markup (t.Namespace) : type.Namespace) + "."); - - if (settings.UseFullInnerTypeName && type.DeclaringTypeDefinition != null) { - bool includeGenerics = settings.IncludeGenerics; - settings.OutputFlags |= OutputFlags.IncludeGenerics; - string typeString = GetTypeReferenceString (type.DeclaringTypeDefinition, settings); - if (!includeGenerics) - settings.OutputFlags &= ~OutputFlags.IncludeGenerics; - result.Append (typeString); - result.Append (settings.Markup (".")); - } - result.Append (settings.EmitName (type, settings.IncludeMarkup ? settings.Markup (t.Name) : type.Name)); - if (settings.IncludeGenerics && type.TypeParameterCount > 0) { - result.Append (settings.Markup ("<")); - for (int i = 0; i < type.TypeParameterCount; i++) { - if (i > 0) - result.Append (settings.Markup (settings.HideGenericParameterNames ? "," : ", ")); - if (!settings.HideGenericParameterNames) { - if (t.TypeArguments.Count > 0) { - result.Append (GetTypeReferenceString (t.TypeArguments [i], settings)); - } else { - AppendVariance (result, type.TypeParameters [i].Variance); - result.Append (NetToCSharpTypeName (type.TypeParameters [i].FullName)); - } - } - } - result.Append (settings.Markup (">")); - } - - if (t.Kind == TypeKind.Delegate && settings.ReformatDelegates) { -// var policy = GetPolicy (settings); -// if (policy.BeforeMethodCallParentheses) -// result.Append (settings.Markup (" ")); - result.Append (settings.Markup ("(")); - var invoke = type.GetDelegateInvokeMethod (); - if (invoke != null) - AppendParameterList (result, settings, invoke.Parameters); - result.Append (settings.Markup (")")); - return result.ToString (); - } - - if (settings.IncludeBaseTypes && type.DirectBaseTypes.Any ()) { - bool first = true; - foreach (var baseType in type.DirectBaseTypes) { -// if (baseType.FullName == "System.Object" || baseType.FullName == "System.Enum") -// continue; - result.Append (settings.Markup (first ? " : " : ", ")); - first = false; - result.Append (GetTypeReferenceString (baseType, settings)); - } - - } -// OutputConstraints (result, settings, type.TypeParameters); - return result.ToString (); - } +// #region implemented abstract members of MonoDevelop.Ide.TypeSystem.Ambience +// public override string GetIntrinsicTypeName (string reflectionName) +// { +// return NetToCSharpTypeName (reflectionName); +// } +// +// public override string SingleLineComment (string text) +// { +// return "// " + text; +// } +// +// public override string GetString (string nameSpace, OutputSettings settings) +// { +// var result = new StringBuilder (); +// if (settings.IncludeKeywords) +// result.Append (settings.EmitKeyword ("namespace")); +// result.Append (Format (nameSpace)); +// return result.ToString (); +// } +// +// public void AppendType (StringBuilder sb, IType type, OutputSettings settings) +// { +// if (type.Kind == TypeKind.Unknown) { +// sb.Append (settings.IncludeMarkup ? settings.Markup (type.Name) : type.Name); +// return; +// } +// if (type.Kind == TypeKind.TypeParameter) { +// sb.Append (settings.IncludeMarkup ? settings.Markup (type.Name) : type.Name); +// return; +// } +// if (type.DeclaringType != null) { +// AppendType (sb, type.DeclaringType, settings); +// sb.Append (settings.Markup (".")); +// } +// if (type.Namespace == "System" && type.TypeParameterCount == 0) { +// switch (type.Name) { +// case "Object": +// sb.Append ("object"); +// return; +// case "Boolean": +// sb.Append ("bool"); +// return; +// case "Char": +// sb.Append ("char"); +// return; +// case "SByte": +// sb.Append ("sbyte"); +// return; +// case "Byte": +// sb.Append ("byte"); +// return; +// case "Int16": +// sb.Append ("short"); +// return; +// case "UInt16": +// sb.Append ("ushort"); +// return; +// case "Int32": +// sb.Append ("int"); +// return; +// case "UInt32": +// sb.Append ("uint"); +// return; +// case "Int64": +// sb.Append ("long"); +// return; +// case "UInt64": +// sb.Append ("ulong"); +// return; +// case "Single": +// sb.Append ("float"); +// return; +// case "Double": +// sb.Append ("double"); +// return; +// case "Decimal": +// sb.Append ("decimal"); +// return; +// case "String": +// sb.Append ("string"); +// return; +// case "Void": +// sb.Append ("void"); +// return; +// } +// } +// +// var typeWithElementType = type as TypeWithElementType; +// if (typeWithElementType != null) { +// AppendType (sb, typeWithElementType.ElementType, settings); +// +// if (typeWithElementType is PointerType) { +// sb.Append (settings.Markup ("*")); +// } +// +// if (typeWithElementType is ArrayType) { +// sb.Append (settings.Markup ("[")); +// sb.Append (settings.Markup (new string (',', ((ArrayType)type).Dimensions - 1))); +// sb.Append (settings.Markup ("]")); +// } +// return; +// } +// +// if (type.TypeArguments.Count > 0) { +// if (type.Name == "Nullable" && type.Namespace == "System" && type.TypeParameterCount == 1) { +// AppendType (sb, type.TypeArguments [0], settings); +// sb.Append (settings.Markup ("?")); +// return; +// } +// sb.Append (type.Name); +// if (type.TypeParameterCount > 0) { +// sb.Append (settings.Markup ("<")); +// for (int i = 0; i < type.TypeParameterCount; i++) { +// if (i > 0) +// sb.Append (settings.Markup (", ")); +// AppendType (sb, type.TypeArguments [i], settings); +// } +// sb.Append (settings.Markup (">")); +// } +// return; +// } +// +// var typeDef = type as ITypeDefinition ?? type.GetDefinition (); +// if (typeDef != null) { +// if (settings.UseFullName) { +// sb.Append (settings.IncludeMarkup ? settings.Markup (typeDef.FullName) : typeDef.FullName); +// } else { +// sb.Append (settings.IncludeMarkup ? settings.Markup (typeDef.Name) : typeDef.Name); +// } +// +// if (typeDef.TypeParameterCount > 0) { +// sb.Append (settings.Markup ("<")); +// for (int i = 0; i < typeDef.TypeParameterCount; i++) { +// if (i > 0) +// sb.Append (settings.Markup (", ")); +// AppendVariance (sb, typeDef.TypeParameters [i].Variance); +// AppendType (sb, typeDef.TypeParameters [i], settings); +// } +// sb.Append (settings.Markup (">")); +// } +// } +// } +// +// static void AppendVariance (StringBuilder sb, VarianceModifier variance) +// { +// if (variance == VarianceModifier.Contravariant) { +// sb.Append ("in "); +// } else if (variance == VarianceModifier.Covariant) { +// sb.Append ("out "); +// } +// } +// +// protected override string GetTypeReferenceString (IType reference, OutputSettings settings) +// { +// if (reference == null) +// return "null"; +// var type = reference; +// if (type.Kind == TypeKind.Unknown) { +// return settings.IncludeMarkup ? settings.Markup (reference.Name) : reference.Name; +// } +// +// if (reference.Kind == TypeKind.TypeParameter) +// return settings.IncludeMarkup ? settings.Markup (reference.Name) : reference.FullName; +// +// var sb = new StringBuilder (); +// if (type is ITypeDefinition && ((ITypeDefinition)type).IsSynthetic && ((ITypeDefinition)type).Name == "$Anonymous$") { +// sb.Append ("new {"); +// foreach (var property in ((ITypeDefinition)type).Properties) { +// sb.AppendLine (); +// sb.Append ("\t"); +// sb.Append (GetTypeReferenceString (property.ReturnType, settings) ?? "?"); +// sb.Append (" "); +// sb.Append (settings.IncludeMarkup ? settings.Markup (property.Name) : property.Name); +// sb.Append (";"); +// } +// sb.AppendLine (); +// sb.Append ("}"); +// return sb.ToString (); +// } +// +// AppendType (sb, type, settings); +// return sb.ToString (); +// } +// +// protected override string GetTypeString (IType t, OutputSettings settings) +// { +// if (t.Kind == TypeKind.Unknown) { +// return settings.IncludeMarkup ? settings.Markup (t.Name) : t.Name; +// } +// +// if (t.Kind == TypeKind.TypeParameter) +// return settings.IncludeMarkup ? settings.Markup (t.FullName) : t.FullName; +// +// var typeWithElementType = t as TypeWithElementType; +// if (typeWithElementType != null) { +// var sb = new StringBuilder (); +// +// if (typeWithElementType is PointerType) { +// sb.Append (settings.Markup ("*")); +// } +// AppendType (sb, typeWithElementType.ElementType, settings); +// +// if (typeWithElementType is ArrayType) { +// sb.Append (settings.Markup ("[")); +// sb.Append (settings.Markup (new string (',', ((ArrayType)t).Dimensions - 1))); +// sb.Append (settings.Markup ("]")); +// } +// return sb.ToString (); +// } +// +// ITypeDefinition type = t.GetDefinition (); +// if (type == null) +// return ""; +// +// if (!settings.UseNETTypeNames && type.Namespace == "System" && type.TypeParameterCount == 0) { +// switch (type.Name) { +// case "Object": +// return "object"; +// case "Boolean": +// return "bool"; +// case "Char": +// return "char"; +// case "SByte": +// return "sbyte"; +// case "Byte": +// return "byte"; +// case "Int16": +// return "short"; +// case "UInt16": +// return "ushort"; +// case "Int32": +// return "int"; +// case "UInt32": +// return "uint"; +// case "Int64": +// return "long"; +// case "UInt64": +// return "ulong"; +// case "Single": +// return "float"; +// case "Double": +// return "double"; +// case "Decimal": +// return "decimal"; +// case "String": +// return "string"; +// case "Void": +// return "void"; +// } +// } +// +// // output anonymous type +// if (type.IsSynthetic && type.Name == "$Anonymous$") +// return GetTypeReferenceString (type, settings); +// +// var result = new StringBuilder (); +// +// +// var def = type; +// AppendModifiers (result, settings, def); +// if (settings.IncludeKeywords) +// result.Append (GetString (def.Kind)); +// if (result.Length > 0 && !result.ToString ().EndsWith (" ")) +// result.Append (settings.Markup (" ")); +// +// +// if (type.Kind == TypeKind.Delegate && settings.ReformatDelegates && settings.IncludeReturnType) { +// var invoke = type.GetDelegateInvokeMethod (); +// result.Append (GetTypeReferenceString (invoke.ReturnType, settings)); +// result.Append (settings.Markup (" ")); +// } +// +// if (settings.UseFullName && !string.IsNullOrEmpty (type.Namespace)) +// result.Append ((settings.IncludeMarkup ? settings.Markup (t.Namespace) : type.Namespace) + "."); +// +// if (settings.UseFullInnerTypeName && type.DeclaringTypeDefinition != null) { +// bool includeGenerics = settings.IncludeGenerics; +// settings.OutputFlags |= OutputFlags.IncludeGenerics; +// string typeString = GetTypeReferenceString (type.DeclaringTypeDefinition, settings); +// if (!includeGenerics) +// settings.OutputFlags &= ~OutputFlags.IncludeGenerics; +// result.Append (typeString); +// result.Append (settings.Markup (".")); +// } +// result.Append (settings.EmitName (type, settings.IncludeMarkup ? settings.Markup (t.Name) : type.Name)); +// if (settings.IncludeGenerics && type.TypeParameterCount > 0) { +// result.Append (settings.Markup ("<")); +// for (int i = 0; i < type.TypeParameterCount; i++) { +// if (i > 0) +// result.Append (settings.Markup (settings.HideGenericParameterNames ? "," : ", ")); +// if (!settings.HideGenericParameterNames) { +// if (t.TypeArguments.Count > 0) { +// result.Append (GetTypeReferenceString (t.TypeArguments [i], settings)); +// } else { +// AppendVariance (result, type.TypeParameters [i].Variance); +// result.Append (NetToCSharpTypeName (type.TypeParameters [i].FullName)); +// } +// } +// } +// result.Append (settings.Markup (">")); +// } +// +// if (t.Kind == TypeKind.Delegate && settings.ReformatDelegates) { +//// var policy = GetPolicy (settings); +//// if (policy.BeforeMethodCallParentheses) +//// result.Append (settings.Markup (" ")); +// result.Append (settings.Markup ("(")); +// var invoke = type.GetDelegateInvokeMethod (); +// if (invoke != null) +// AppendParameterList (result, settings, invoke.Parameters); +// result.Append (settings.Markup (")")); +// return result.ToString (); +// } +// +// if (settings.IncludeBaseTypes && type.DirectBaseTypes.Any ()) { +// bool first = true; +// foreach (var baseType in type.DirectBaseTypes) { +//// if (baseType.FullName == "System.Object" || baseType.FullName == "System.Enum") +//// continue; +// result.Append (settings.Markup (first ? " : " : ", ")); +// first = false; +// result.Append (GetTypeReferenceString (baseType, settings)); +// } +// +// } +//// OutputConstraints (result, settings, type.TypeParameters); +// return result.ToString (); +// } internal static string GetOperator (string methodName) { @@ -623,336 +611,336 @@ namespace MonoDevelop.CSharp } return methodName; } - - string InternalGetMethodString (IMethod method, OutputSettings settings, string methodName, bool getReturnType) - { - if (method == null) - return ""; - var result = new StringBuilder (); - AppendModifiers (result, settings, method); - if (!settings.CompletionListFomat && settings.IncludeReturnType && getReturnType) { - result.Append (GetTypeReferenceString (method.ReturnType, settings)); - result.Append (settings.Markup (" ")); - } - - if (!settings.IncludeReturnType && settings.UseFullName) { - result.Append (GetTypeReferenceString (method.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); - result.Append (settings.Markup (".")); - } - AppendExplicitInterfaces (result, method, settings); - if (method.SymbolKind == SymbolKind.Operator) { - result.Append ("operator "); - result.Append (settings.Markup (GetOperator (methodName))); - } else { - result.Append (methodName); - } - - if (settings.IncludeGenerics) { - if (method.TypeParameters.Count > 0) { - result.Append (settings.Markup ("<")); - for (int i = 0; i < method.TypeParameters.Count; i++) { - if (i > 0) - result.Append (settings.Markup (settings.HideGenericParameterNames ? "," : ", ")); - if (!settings.HideGenericParameterNames) { - AppendVariance (result, method.TypeParameters [i].Variance); - result.Append (NetToCSharpTypeName (method.TypeParameters [i].Name)); - } - } - result.Append (settings.Markup (">")); - } - } - - if (settings.IncludeParameters) { -// CSharpFormattingPolicy policy = GetPolicy (settings); -// if (policy.BeforeMethodCallParentheses) +// +// string InternalGetMethodString (IMethod method, OutputSettings settings, string methodName, bool getReturnType) +// { +// if (method == null) +// return ""; +// var result = new StringBuilder (); +// AppendModifiers (result, settings, method); +// if (!settings.CompletionListFomat && settings.IncludeReturnType && getReturnType) { +// result.Append (GetTypeReferenceString (method.ReturnType, settings)); // result.Append (settings.Markup (" ")); - result.Append (settings.Markup ("(")); - AppendParameterList (result, settings, method.Parameters); - result.Append (settings.Markup (")")); - } - - if (settings.CompletionListFomat && settings.IncludeReturnType && getReturnType) { - result.Append (settings.Markup (" : ")); - result.Append (GetTypeReferenceString (method.ReturnType, settings)); - } - -// OutputConstraints (result, settings, method.TypeParameters); - - return result.ToString (); - } - - protected override string GetMethodString (IMethod method, OutputSettings settings) - { - return InternalGetMethodString (method, settings, settings.EmitName (method, Format (FilterName (method.SymbolKind == SymbolKind.Constructor || method.SymbolKind == SymbolKind.Destructor ? method.DeclaringTypeDefinition.Name : method.Name))), true); - } - - protected override string GetConstructorString (IMethod method, OutputSettings settings) - { - return InternalGetMethodString (method, settings, settings.EmitName (method, Format (FilterName (method.DeclaringTypeDefinition != null ? method.DeclaringTypeDefinition.Name : method.Name))), false); - } - - protected override string GetDestructorString (IMethod method, OutputSettings settings) - { - return InternalGetMethodString (method, settings, settings.EmitName (method, settings.Markup ("~") + Format (FilterName (method.DeclaringTypeDefinition != null ? method.DeclaringTypeDefinition.Name : method.Name))), false); - } - - protected override string GetOperatorString (IMethod method, OutputSettings settings) - { - return InternalGetMethodString (method, settings, settings.EmitName (method, Format (FilterName (method.Name))), true); - } - - protected override string GetFieldString (IField field, OutputSettings settings) - { - if (field == null) - return ""; - var result = new StringBuilder (); - bool isEnum = field.DeclaringTypeDefinition != null && field.DeclaringTypeDefinition.Kind == TypeKind.Enum; - AppendModifiers (result, settings, field); - - if (!settings.CompletionListFomat && settings.IncludeReturnType && !isEnum) { - result.Append (GetTypeReferenceString (field.ReturnType, settings)); - result.Append (settings.Markup (" ")); - } - - if (!settings.IncludeReturnType && settings.UseFullName) { - result.Append (GetTypeReferenceString (field.DeclaringTypeDefinition, settings)); - result.Append (settings.Markup (".")); - } - result.Append (settings.EmitName (field, FilterName (Format (field.Name)))); - - if (settings.CompletionListFomat && settings.IncludeReturnType && !isEnum) { - result.Append (settings.Markup (" : ")); - result.Append (GetTypeReferenceString (field.ReturnType, settings)); - } - return result.ToString (); - } - - protected override string GetEventString (IEvent evt, OutputSettings settings) - { - if (evt == null) - return ""; - var result = new StringBuilder (); - AppendModifiers (result, settings, evt); - if (settings.IncludeKeywords) - result.Append (settings.EmitKeyword ("event")); - if (!settings.CompletionListFomat && settings.IncludeReturnType) { - result.Append (GetTypeReferenceString (evt.ReturnType, settings)); - result.Append (settings.Markup (" ")); - } - - if (!settings.IncludeReturnType && settings.UseFullName) { - result.Append (GetTypeReferenceString (evt.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); - result.Append (settings.Markup (".")); - } - - AppendExplicitInterfaces (result, evt, settings); - result.Append (settings.EmitName (evt, Format (FilterName (evt.Name)))); - - if (settings.CompletionListFomat && settings.IncludeReturnType) { - result.Append (settings.Markup (" : ")); - result.Append (GetTypeReferenceString (evt.ReturnType, settings)); - } - return result.ToString (); - } - - protected override string GetPropertyString (IProperty property, OutputSettings settings) - { - if (property == null) - return ""; - var result = new StringBuilder (); - AppendModifiers (result, settings, property); - if (!settings.CompletionListFomat && settings.IncludeReturnType) { - result.Append (GetTypeReferenceString (property.ReturnType, settings)); - result.Append (settings.Markup (" ")); - } - - if (!settings.IncludeReturnType && settings.UseFullName) { - result.Append (GetTypeReferenceString (property.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); - result.Append (settings.Markup (".")); - } - - AppendExplicitInterfaces (result, property, settings); - - if (property.SymbolKind == SymbolKind.Indexer) { - result.Append (settings.EmitName (property, "this")); - } else { - result.Append (settings.EmitName (property, Format (FilterName (property.Name)))); - } - - if (settings.IncludeParameters && property.Parameters.Count > 0) { - result.Append (settings.Markup ("[")); - AppendParameterList (result, settings, property.Parameters); - result.Append (settings.Markup ("]")); - } - - if (settings.CompletionListFomat && settings.IncludeReturnType) { - result.Append (settings.Markup (" : ")); - result.Append (GetTypeReferenceString (property.ReturnType, settings)); - } - - if (settings.IncludeAccessor) { - result.Append (settings.Markup (" {")); - if (property.CanGet) - result.Append (settings.Markup (" get;")); - if (property.CanSet) - result.Append (settings.Markup (" set;")); - result.Append (settings.Markup (" }")); - } - - return result.ToString (); - } - - protected override string GetIndexerString (IProperty property, OutputSettings settings) - { - if (property == null) - return ""; - var result = new StringBuilder (); - - AppendModifiers (result, settings, property); - - if (settings.IncludeReturnType) { - result.Append (GetTypeReferenceString (property.ReturnType, settings)); - result.Append (settings.Markup (" ")); - } - - if (!settings.IncludeReturnType && settings.UseFullName) { - result.Append (GetTypeReferenceString (property.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); - result.Append (settings.Markup (".")); - } - - AppendExplicitInterfaces (result, property, settings); - - result.Append (settings.EmitName (property, Format ("this"))); - - if (settings.IncludeParameters && property.Getter.Parameters.Count > 0) { - result.Append (settings.Markup ("[")); - AppendParameterList (result, settings, property.Getter.Parameters); - result.Append (settings.Markup ("]")); - } - if (settings.IncludeAccessor) { - result.Append (settings.Markup (" {")); - if (property.CanGet) - result.Append (settings.Markup (" get;")); - if (property.CanSet) - result.Append (settings.Markup (" set;")); - result.Append (settings.Markup (" }")); - } - return result.ToString (); - } - - protected override string GetParameterString (IParameterizedMember member, IParameter parameter, OutputSettings settings) - { - if (parameter == null) - return ""; - var result = new StringBuilder (); - if (settings.IncludeParameterName) { - if (settings.IncludeModifiers) { - if (parameter.IsOut) { - result.Append (settings.EmitKeyword ("out")); - } - if (parameter.IsRef) { - result.Append (settings.EmitKeyword ("ref")); - } - if (parameter.IsParams) { - result.Append (settings.EmitKeyword ("params")); - } - } - - result.Append (GetTypeReferenceString (parameter.Type, settings)); - result.Append (" "); - - if (settings.HighlightName) { - result.Append (settings.EmitName (parameter, settings.Highlight (Format (FilterName (parameter.Name))))); - } else { - result.Append (settings.EmitName (parameter, Format (FilterName (parameter.Name)))); - } - } else { - result.Append (GetTypeReferenceString (parameter.Type, settings)); - } - return result.ToString (); - } - - #endregion - - void AppendExplicitInterfaces (StringBuilder sb, IMember member, OutputSettings settings) - { - if (member == null || !member.IsExplicitInterfaceImplementation) - return; - foreach (var implementedInterfaceMember in member.ImplementedInterfaceMembers) { - if (settings.UseFullName) { - sb.Append (Format (implementedInterfaceMember.DeclaringTypeDefinition.FullName)); - } else { - sb.Append (Format (implementedInterfaceMember.DeclaringTypeDefinition.Name)); - } - sb.Append (settings.Markup (".")); - } - } - - void AppendParameterList (StringBuilder result, OutputSettings settings, IEnumerable<IParameter> parameterList) - { - if (parameterList == null) - return; - - bool first = true; - foreach (var parameter in parameterList) { - if (!first) - result.Append (settings.Markup (", ")); - AppendParameter (settings, result, parameter); - first = false; - } - } - - void AppendParameter (OutputSettings settings, StringBuilder result, IParameter parameter) - { - if (parameter == null) - return; - if (parameter.IsOut) { - result.Append (settings.Markup ("out")); - result.Append (settings.Markup (" ")); - } else if (parameter.IsRef) { - result.Append (settings.Markup ("ref")); - result.Append (settings.Markup (" ")); - } else if (parameter.IsParams) { - result.Append (settings.Markup ("params")); - result.Append (settings.Markup (" ")); - } - result.Append (GetParameterString (null, parameter, settings)); - } - - void AppendModifiers (StringBuilder result, OutputSettings settings, IEntity entity) - { - if (!settings.IncludeModifiers) - return; - if (entity.IsStatic) - result.Append (settings.EmitModifiers ("static")); - if (entity.IsSealed) - result.Append (settings.EmitModifiers ("sealed")); - if (entity.IsAbstract) - result.Append (settings.EmitModifiers ("abstract")); - if (entity.IsShadowing) - result.Append (settings.EmitModifiers ("new")); - - switch (entity.Accessibility) { - case Accessibility.Internal: - result.Append (settings.EmitModifiers ("internal")); - break; - case Accessibility.ProtectedAndInternal: - result.Append (settings.EmitModifiers ("protected internal")); - break; - case Accessibility.ProtectedOrInternal: - result.Append (settings.EmitModifiers ("internal protected")); - break; - case Accessibility.Protected: - result.Append (settings.EmitModifiers ("protected")); - break; - case Accessibility.Private: - result.Append (settings.EmitModifiers ("private")); - break; - case Accessibility.Public: - result.Append (settings.EmitModifiers ("public")); - break; - } - } +// } +// +// if (!settings.IncludeReturnType && settings.UseFullName) { +// result.Append (GetTypeReferenceString (method.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); +// result.Append (settings.Markup (".")); +// } +// AppendExplicitInterfaces (result, method, settings); +// if (method.SymbolKind == SymbolKind.Operator) { +// result.Append ("operator "); +// result.Append (settings.Markup (GetOperator (methodName))); +// } else { +// result.Append (methodName); +// } +// +// if (settings.IncludeGenerics) { +// if (method.TypeParameters.Count > 0) { +// result.Append (settings.Markup ("<")); +// for (int i = 0; i < method.TypeParameters.Count; i++) { +// if (i > 0) +// result.Append (settings.Markup (settings.HideGenericParameterNames ? "," : ", ")); +// if (!settings.HideGenericParameterNames) { +// AppendVariance (result, method.TypeParameters [i].Variance); +// result.Append (NetToCSharpTypeName (method.TypeParameters [i].Name)); +// } +// } +// result.Append (settings.Markup (">")); +// } +// } +// +// if (settings.IncludeParameters) { +//// CSharpFormattingPolicy policy = GetPolicy (settings); +//// if (policy.BeforeMethodCallParentheses) +//// result.Append (settings.Markup (" ")); +// result.Append (settings.Markup ("(")); +// AppendParameterList (result, settings, method.Parameters); +// result.Append (settings.Markup (")")); +// } +// +// if (settings.CompletionListFomat && settings.IncludeReturnType && getReturnType) { +// result.Append (settings.Markup (" : ")); +// result.Append (GetTypeReferenceString (method.ReturnType, settings)); +// } +// +//// OutputConstraints (result, settings, method.TypeParameters); +// +// return result.ToString (); +// } +// +// protected override string GetMethodString (IMethod method, OutputSettings settings) +// { +// return InternalGetMethodString (method, settings, settings.EmitName (method, Format (FilterName (method.SymbolKind == SymbolKind.Constructor || method.SymbolKind == SymbolKind.Destructor ? method.DeclaringTypeDefinition.Name : method.Name))), true); +// } +// +// protected override string GetConstructorString (IMethod method, OutputSettings settings) +// { +// return InternalGetMethodString (method, settings, settings.EmitName (method, Format (FilterName (method.DeclaringTypeDefinition != null ? method.DeclaringTypeDefinition.Name : method.Name))), false); +// } +// +// protected override string GetDestructorString (IMethod method, OutputSettings settings) +// { +// return InternalGetMethodString (method, settings, settings.EmitName (method, settings.Markup ("~") + Format (FilterName (method.DeclaringTypeDefinition != null ? method.DeclaringTypeDefinition.Name : method.Name))), false); +// } +// +// protected override string GetOperatorString (IMethod method, OutputSettings settings) +// { +// return InternalGetMethodString (method, settings, settings.EmitName (method, Format (FilterName (method.Name))), true); +// } +// +// protected override string GetFieldString (IField field, OutputSettings settings) +// { +// if (field == null) +// return ""; +// var result = new StringBuilder (); +// bool isEnum = field.DeclaringTypeDefinition != null && field.DeclaringTypeDefinition.Kind == TypeKind.Enum; +// AppendModifiers (result, settings, field); +// +// if (!settings.CompletionListFomat && settings.IncludeReturnType && !isEnum) { +// result.Append (GetTypeReferenceString (field.ReturnType, settings)); +// result.Append (settings.Markup (" ")); +// } +// +// if (!settings.IncludeReturnType && settings.UseFullName) { +// result.Append (GetTypeReferenceString (field.DeclaringTypeDefinition, settings)); +// result.Append (settings.Markup (".")); +// } +// result.Append (settings.EmitName (field, FilterName (Format (field.Name)))); +// +// if (settings.CompletionListFomat && settings.IncludeReturnType && !isEnum) { +// result.Append (settings.Markup (" : ")); +// result.Append (GetTypeReferenceString (field.ReturnType, settings)); +// } +// return result.ToString (); +// } +// +// protected override string GetEventString (IEvent evt, OutputSettings settings) +// { +// if (evt == null) +// return ""; +// var result = new StringBuilder (); +// AppendModifiers (result, settings, evt); +// if (settings.IncludeKeywords) +// result.Append (settings.EmitKeyword ("event")); +// if (!settings.CompletionListFomat && settings.IncludeReturnType) { +// result.Append (GetTypeReferenceString (evt.ReturnType, settings)); +// result.Append (settings.Markup (" ")); +// } +// +// if (!settings.IncludeReturnType && settings.UseFullName) { +// result.Append (GetTypeReferenceString (evt.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); +// result.Append (settings.Markup (".")); +// } +// +// AppendExplicitInterfaces (result, evt, settings); +// result.Append (settings.EmitName (evt, Format (FilterName (evt.Name)))); +// +// if (settings.CompletionListFomat && settings.IncludeReturnType) { +// result.Append (settings.Markup (" : ")); +// result.Append (GetTypeReferenceString (evt.ReturnType, settings)); +// } +// return result.ToString (); +// } +// +// protected override string GetPropertyString (IProperty property, OutputSettings settings) +// { +// if (property == null) +// return ""; +// var result = new StringBuilder (); +// AppendModifiers (result, settings, property); +// if (!settings.CompletionListFomat && settings.IncludeReturnType) { +// result.Append (GetTypeReferenceString (property.ReturnType, settings)); +// result.Append (settings.Markup (" ")); +// } +// +// if (!settings.IncludeReturnType && settings.UseFullName) { +// result.Append (GetTypeReferenceString (property.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); +// result.Append (settings.Markup (".")); +// } +// +// AppendExplicitInterfaces (result, property, settings); +// +// if (property.SymbolKind == SymbolKind.Indexer) { +// result.Append (settings.EmitName (property, "this")); +// } else { +// result.Append (settings.EmitName (property, Format (FilterName (property.Name)))); +// } +// +// if (settings.IncludeParameters && property.Parameters.Count > 0) { +// result.Append (settings.Markup ("[")); +// AppendParameterList (result, settings, property.Parameters); +// result.Append (settings.Markup ("]")); +// } +// +// if (settings.CompletionListFomat && settings.IncludeReturnType) { +// result.Append (settings.Markup (" : ")); +// result.Append (GetTypeReferenceString (property.ReturnType, settings)); +// } +// +// if (settings.IncludeAccessor) { +// result.Append (settings.Markup (" {")); +// if (property.CanGet) +// result.Append (settings.Markup (" get;")); +// if (property.CanSet) +// result.Append (settings.Markup (" set;")); +// result.Append (settings.Markup (" }")); +// } +// +// return result.ToString (); +// } +// +// protected override string GetIndexerString (IProperty property, OutputSettings settings) +// { +// if (property == null) +// return ""; +// var result = new StringBuilder (); +// +// AppendModifiers (result, settings, property); +// +// if (settings.IncludeReturnType) { +// result.Append (GetTypeReferenceString (property.ReturnType, settings)); +// result.Append (settings.Markup (" ")); +// } +// +// if (!settings.IncludeReturnType && settings.UseFullName) { +// result.Append (GetTypeReferenceString (property.DeclaringTypeDefinition, new OutputSettings (OutputFlags.UseFullName))); +// result.Append (settings.Markup (".")); +// } +// +// AppendExplicitInterfaces (result, property, settings); +// +// result.Append (settings.EmitName (property, Format ("this"))); +// +// if (settings.IncludeParameters && property.Getter.Parameters.Count > 0) { +// result.Append (settings.Markup ("[")); +// AppendParameterList (result, settings, property.Getter.Parameters); +// result.Append (settings.Markup ("]")); +// } +// if (settings.IncludeAccessor) { +// result.Append (settings.Markup (" {")); +// if (property.CanGet) +// result.Append (settings.Markup (" get;")); +// if (property.CanSet) +// result.Append (settings.Markup (" set;")); +// result.Append (settings.Markup (" }")); +// } +// return result.ToString (); +// } +// +// protected override string GetParameterString (IParameterizedMember member, IParameter parameter, OutputSettings settings) +// { +// if (parameter == null) +// return ""; +// var result = new StringBuilder (); +// if (settings.IncludeParameterName) { +// if (settings.IncludeModifiers) { +// if (parameter.IsOut) { +// result.Append (settings.EmitKeyword ("out")); +// } +// if (parameter.IsRef) { +// result.Append (settings.EmitKeyword ("ref")); +// } +// if (parameter.IsParams) { +// result.Append (settings.EmitKeyword ("params")); +// } +// } +// +// result.Append (GetTypeReferenceString (parameter.Type, settings)); +// result.Append (" "); +// +// if (settings.HighlightName) { +// result.Append (settings.EmitName (parameter, settings.Highlight (Format (FilterName (parameter.Name))))); +// } else { +// result.Append (settings.EmitName (parameter, Format (FilterName (parameter.Name)))); +// } +// } else { +// result.Append (GetTypeReferenceString (parameter.Type, settings)); +// } +// return result.ToString (); +// } +// +// #endregion +// +// void AppendExplicitInterfaces (StringBuilder sb, IMember member, OutputSettings settings) +// { +// if (member == null || !member.IsExplicitInterfaceImplementation) +// return; +// foreach (var implementedInterfaceMember in member.ImplementedInterfaceMembers) { +// if (settings.UseFullName) { +// sb.Append (Format (implementedInterfaceMember.DeclaringTypeDefinition.FullName)); +// } else { +// sb.Append (Format (implementedInterfaceMember.DeclaringTypeDefinition.Name)); +// } +// sb.Append (settings.Markup (".")); +// } +// } +// +// void AppendParameterList (StringBuilder result, OutputSettings settings, IEnumerable<IParameter> parameterList) +// { +// if (parameterList == null) +// return; +// +// bool first = true; +// foreach (var parameter in parameterList) { +// if (!first) +// result.Append (settings.Markup (", ")); +// AppendParameter (settings, result, parameter); +// first = false; +// } +// } +// +// void AppendParameter (OutputSettings settings, StringBuilder result, IParameter parameter) +// { +// if (parameter == null) +// return; +// if (parameter.IsOut) { +// result.Append (settings.Markup ("out")); +// result.Append (settings.Markup (" ")); +// } else if (parameter.IsRef) { +// result.Append (settings.Markup ("ref")); +// result.Append (settings.Markup (" ")); +// } else if (parameter.IsParams) { +// result.Append (settings.Markup ("params")); +// result.Append (settings.Markup (" ")); +// } +// result.Append (GetParameterString (null, parameter, settings)); +// } +// +// void AppendModifiers (StringBuilder result, OutputSettings settings, IEntity entity) +// { +// if (!settings.IncludeModifiers) +// return; +// if (entity.IsStatic) +// result.Append (settings.EmitModifiers ("static")); +// if (entity.IsSealed) +// result.Append (settings.EmitModifiers ("sealed")); +// if (entity.IsAbstract) +// result.Append (settings.EmitModifiers ("abstract")); +// if (entity.IsShadowing) +// result.Append (settings.EmitModifiers ("new")); +// +// switch (entity.Accessibility) { +// case Accessibility.Internal: +// result.Append (settings.EmitModifiers ("internal")); +// break; +// case Accessibility.ProtectedAndInternal: +// result.Append (settings.EmitModifiers ("protected internal")); +// break; +// case Accessibility.ProtectedOrInternal: +// result.Append (settings.EmitModifiers ("internal protected")); +// break; +// case Accessibility.Protected: +// result.Append (settings.EmitModifiers ("protected")); +// break; +// case Accessibility.Private: +// result.Append (settings.EmitModifiers ("private")); +// break; +// case Accessibility.Public: +// result.Append (settings.EmitModifiers ("public")); +// break; +// } +// } } - + } |