public void StringEscaping() { const string value = "a\tb"; Assert.Equal("a\tb", ObjectDisplay.FormatPrimitive(value, ObjectDisplayOptions.None)); Assert.Equal( "\"a\tb\"", ObjectDisplay.FormatPrimitive(value, ObjectDisplayOptions.UseQuotes) ); Assert.Equal( "a\\tb", ObjectDisplay.FormatPrimitive( value, ObjectDisplayOptions.EscapeNonPrintableCharacters ) ); Assert.Equal( "\"a\\tb\"", ObjectDisplay.FormatPrimitive( value, ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters ) ); }
private void BuildTypedConstant(CodeFileTokensBuilder builder, TypedConstant typedConstant) { if (typedConstant.IsNull) { builder.Keyword(SyntaxKind.NullKeyword); } else if (typedConstant.Kind == TypedConstantKind.Enum) { new CodeFileBuilderEnumFormatter(builder).Format(typedConstant.Type, typedConstant.Value); } else { if (typedConstant.Value is string s) { builder.Append( ObjectDisplay.FormatLiteral(s, ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters), CodeFileTokenKind.StringLiteral); } else { builder.Append( ObjectDisplay.FormatPrimitive(typedConstant.Value, ObjectDisplayOptions.None), CodeFileTokenKind.Literal); } } }
private string FormatPrimitive(object obj, bool quoteStrings = false) { var options = quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None; return(ObjectDisplay.FormatPrimitive( obj, options | ObjectDisplayOptions.EscapeNonPrintableCharacters )); }
private void BuildTypedConstant(CodeFileTokensBuilder builder, TypedConstant typedConstant) { if (typedConstant.IsNull) { builder.Keyword(SyntaxKind.NullKeyword); } else if (typedConstant.Kind == TypedConstantKind.Enum) { new CodeFileBuilderEnumFormatter(builder).Format(typedConstant.Type, typedConstant.Value); } else if (typedConstant.Kind == TypedConstantKind.Type) { builder.Keyword(SyntaxKind.TypeOfKeyword); builder.Punctuation("("); DisplayName(builder, (ITypeSymbol)typedConstant.Value); builder.Punctuation(")"); } else if (typedConstant.Kind == TypedConstantKind.Array) { builder.Keyword(SyntaxKind.NewKeyword); builder.Punctuation("[] {"); bool first = true; foreach (var value in typedConstant.Values) { if (!first) { builder.Punctuation(SyntaxKind.CommaToken); builder.Space(); } else { first = false; } BuildTypedConstant(builder, value); } builder.Punctuation("}"); } else { if (typedConstant.Value is string s) { builder.Append( ObjectDisplay.FormatLiteral(s, ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters), CodeFileTokenKind.StringLiteral); } else { builder.Append( ObjectDisplay.FormatPrimitive(typedConstant.Value, ObjectDisplayOptions.None), CodeFileTokenKind.Literal); } } }
private string FormatPrimitiveIncludingTypeSuffix( object obj, bool useHexadecimalNumbers = false ) { var options = useHexadecimalNumbers ? ObjectDisplayOptions.UseHexadecimalNumbers : ObjectDisplayOptions.None; return(ObjectDisplay.FormatPrimitive( obj, options | ObjectDisplayOptions.IncludeTypeSuffix | ObjectDisplayOptions.EscapeNonPrintableCharacters )); }
internal override string FormatPrimitiveObject(object value, ObjectDisplayOptions options) { return(ObjectDisplay.FormatPrimitive(value, options)); }
private string FormatPrimitiveUsingHexadecimalNumbers(object obj, bool quoteStrings = false) { var options = quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None; return(ObjectDisplay.FormatPrimitive(obj, options | ObjectDisplayOptions.UseHexadecimalNumbers)); }
private string FormatPrimitive(object obj, bool quoteStrings = false) { return(ObjectDisplay.FormatPrimitive(obj, quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None)); }