protected override void FormatReturnValueMethodName(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValueFormatterTypeOptions typeOptions, DbgValueFormatterOptions valueOptions, CultureInfo?cultureInfo, DmdMethodBase method, DmdPropertyInfo?property) { var typeFormatter = new Formatters.VisualBasic.VisualBasicTypeFormatter(output, typeOptions.ToTypeFormatterOptions(), null); typeFormatter.Format(method.DeclaringType !, null); var valueFormatter = new Formatters.VisualBasic.VisualBasicPrimitiveValueFormatter(output, valueOptions.ToValueFormatterOptions(), cultureInfo); output.Write(DbgTextColor.Operator, "."); if (property is not null) { output.Write(MemberUtils.GetColor(property), Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(property.Name)); valueFormatter.WriteTokenComment(property.MetadataToken); output.Write(DbgTextColor.Operator, "."); output.Write(DbgTextColor.Keyword, "Get"); valueFormatter.WriteTokenComment(method.MetadataToken); } else { var operatorInfo = Formatters.VisualBasic.Operators.TryGetOperatorInfo(method.Name); if (operatorInfo is not null && method is DmdMethodInfo methodInfo) { for (int i = 0; i < operatorInfo.Length; i++) { if (i > 0) { output.Write(DbgTextColor.Text, " "); } var s = operatorInfo[i]; output.Write('A' <= s[0] && s[0] <= 'Z' ? DbgTextColor.Keyword : DbgTextColor.Operator, s); } WriteGenericMethodArguments(output, method, typeFormatter); }
protected override void FormatReturnValueMethodName(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValueFormatterTypeOptions typeOptions, DbgValueFormatterOptions valueOptions, CultureInfo?cultureInfo, DmdMethodBase method, DmdPropertyInfo?property) { var typeFormatter = new Formatters.VisualBasic.VisualBasicTypeFormatter(output, typeOptions.ToTypeFormatterOptions(), null); typeFormatter.Format(method.DeclaringType !, null); var valueFormatter = new Formatters.VisualBasic.VisualBasicPrimitiveValueFormatter(output, valueOptions.ToValueFormatterOptions(), cultureInfo); output.Write(DbgTextColor.Operator, "."); if (!(property is null)) { output.Write(MemberUtils.GetColor(property), Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(property.Name)); valueFormatter.WriteTokenComment(property.MetadataToken); output.Write(DbgTextColor.Operator, "."); output.Write(DbgTextColor.Keyword, "Get"); valueFormatter.WriteTokenComment(method.MetadataToken); }
protected override void FormatReturnValueMethodName(ITextColorWriter output, DmdMethodBase method, DmdPropertyInfo property) { const Formatters.TypeFormatterOptions options = Formatters.TypeFormatterOptions.IntrinsicTypeKeywords | Formatters.TypeFormatterOptions.Namespaces; var formatter = new Formatters.VisualBasic.VisualBasicTypeFormatter(output, options, null); formatter.Format(method.DeclaringType, null); output.Write(BoxedTextColor.Operator, "."); if ((object)property != null) { output.Write(MemberUtils.GetColor(property), Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(property.Name)); output.Write(BoxedTextColor.Operator, "."); output.Write(BoxedTextColor.Keyword, "Get"); } else { output.Write(Formatters.TypeFormatterUtils.GetColor(method, canBeModule: true), Formatters.VisualBasic.VisualBasicTypeFormatter.GetFormattedIdentifier(method.Name)); } }
void WriteGenericMethodArguments(IDbgTextWriter output, DmdMethodBase method, Formatters.VisualBasic.VisualBasicTypeFormatter typeFormatter) { var genArgs = method.GetGenericArguments(); if (genArgs.Count == 0) { return; } output.Write(DbgTextColor.Punctuation, GenericsParenOpen); output.Write(DbgTextColor.Keyword, Keyword_Of); output.Write(DbgTextColor.Text, " "); for (int i = 0; i < genArgs.Count; i++) { if (i > 0) { output.Write(DbgTextColor.Punctuation, ","); output.Write(DbgTextColor.Text, " "); } typeFormatter.Format(genArgs[i], null); } output.Write(DbgTextColor.Punctuation, GenericsParenClose); }