Ejemplo n.º 1
0
        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
                    )
                );
        }
Ejemplo n.º 2
0
 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);
         }
     }
 }
Ejemplo n.º 3
0
        private string FormatPrimitive(object obj, bool quoteStrings = false)
        {
            var options = quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None;

            return(ObjectDisplay.FormatPrimitive(
                       obj,
                       options | ObjectDisplayOptions.EscapeNonPrintableCharacters
                       ));
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }
Ejemplo n.º 5
0
        private string FormatPrimitiveIncludingTypeSuffix(
            object obj,
            bool useHexadecimalNumbers = false
            )
        {
            var options = useHexadecimalNumbers
                ? ObjectDisplayOptions.UseHexadecimalNumbers
                : ObjectDisplayOptions.None;

            return(ObjectDisplay.FormatPrimitive(
                       obj,
                       options
                       | ObjectDisplayOptions.IncludeTypeSuffix
                       | ObjectDisplayOptions.EscapeNonPrintableCharacters
                       ));
        }
Ejemplo n.º 6
0
 internal override string FormatPrimitiveObject(object value, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatPrimitive(value, options));
 }
Ejemplo n.º 7
0
        private string FormatPrimitiveUsingHexadecimalNumbers(object obj, bool quoteStrings = false)
        {
            var options = quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None;

            return(ObjectDisplay.FormatPrimitive(obj, options | ObjectDisplayOptions.UseHexadecimalNumbers));
        }
Ejemplo n.º 8
0
 private string FormatPrimitive(object obj, bool quoteStrings = false)
 {
     return(ObjectDisplay.FormatPrimitive(obj, quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None));
 }