Skip to content

Commit

Permalink
Improved formatting of type names shown in Locals window
Browse files Browse the repository at this point in the history
  • Loading branch information
ElektroKill committed Jun 24, 2023
1 parent 0f9d37b commit 55e9aa2
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,11 @@ sealed class DbgDotNetValueNodeImpl : DbgDotNetValueNode {
}

public override bool FormatActualType(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgDotNetFormatter formatter, DbgValueFormatterTypeOptions options, DbgValueFormatterOptions valueOptions, CultureInfo? cultureInfo) =>
columnFormatter?.FormatActualType(evalInfo, output, formatter, options, valueOptions, cultureInfo) ??
columnFormatter?.FormatActualType(evalInfo, output, formatter, options, valueOptions, cultureInfo) == true ||
FormatDebuggerDisplayAttributeType(evalInfo, output, formatter, valueOptions, cultureInfo);

public override bool FormatExpectedType(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgDotNetFormatter formatter, DbgValueFormatterTypeOptions options, DbgValueFormatterOptions valueOptions, CultureInfo? cultureInfo) =>
columnFormatter?.FormatExpectedType(evalInfo, output, formatter, options, valueOptions, cultureInfo) ??
columnFormatter?.FormatExpectedType(evalInfo, output, formatter, options, valueOptions, cultureInfo) == true ||
FormatDebuggerDisplayAttributeType(evalInfo, output, formatter, valueOptions, cultureInfo);

bool FormatDebuggerDisplayAttributeType(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgDotNetFormatter formatter, DbgValueFormatterOptions options, CultureInfo? cultureInfo) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,8 @@ abstract class LanguageValueNodeFactory : DbgDotNetValueNodeFactory {
const bool causesSideEffects = false;
var property = PropertyState.TryGetProperty(method);
var imageName = property is not null ? ImageNameUtils.GetImageName(property) : ImageNameUtils.GetImageName(method, SupportsModuleTypes);
return CreateValue(evalInfo, default, value, formatSpecifiers, options, expression, imageName, isReadOnly, causesSideEffects, value.Type, false, columnFormatter);
var expectedType = method is DmdMethodInfo mi ? mi.ReturnType : value.Type;
return CreateValue(evalInfo, default, value, formatSpecifiers, options, expression, imageName, isReadOnly, causesSideEffects, expectedType, false, columnFormatter);
}

internal void FormatReturnValueMethodName(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValueFormatterOptions options, CultureInfo? cultureInfo, DmdMethodBase method) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
along with dnSpy. If not, see <http://www.gnu.org/licenses/>.
*/

using System;
using System.Diagnostics;
using System.Globalization;
using dnSpy.Contracts.Debugger.DotNet.Evaluation.Formatters;
Expand All @@ -38,11 +39,11 @@ sealed class ReturnValueColumnFormatter : ColumnFormatter {
public override bool FormatName(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgDotNetFormatter formatter, DbgValueFormatterOptions options, CultureInfo? cultureInfo) {
var formatString = dnSpy_Roslyn_Resources.LocalsWindow_MethodOrProperty_Returned;
const string pattern = "{0}";
int index = formatString.IndexOf(pattern);
int index = formatString.IndexOf(pattern, StringComparison.Ordinal);
Debug.Assert(index >= 0);
if (index < 0) {
formatString = "{0} returned";
index = formatString.IndexOf(pattern);
index = formatString.IndexOf(pattern, StringComparison.Ordinal);
}

if (index != 0)
Expand Down

0 comments on commit 55e9aa2

Please sign in to comment.