示例#1
0
 private void UpdateMenu(ObservableCollection <Type> types)
 {
     MenuItems.Clear();
     foreach (var type in types)
     {
         var menuItemVM = new MenuItemViewModel
         {
             Label  = type.GetTypeInfo().GetCustomAttribute <TitleAttribute>()?.Title ?? ObjectDisplay.Nicely(type),
             Symbol = type.GetTypeInfo().GetCustomAttribute <IconAttribute>()?.Icon ?? Symbol.Placeholder,
             Tag    = type
         };
         MenuItems.Add(menuItemVM);
     }
 }
示例#2
0
        public void Characters()
        {
            Assert.Equal(
                "120 'x'",
                ObjectDisplay.FormatLiteral(
                    'x',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    )
                );
            Assert.Equal(
                "120 x",
                ObjectDisplay.FormatLiteral('x', ObjectDisplayOptions.IncludeCodePoints)
                );
            Assert.Equal(
                "0x0078 'x'",
                ObjectDisplay.FormatLiteral(
                    'x',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x0078 x",
                ObjectDisplay.FormatLiteral(
                    'x',
                    ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );

            Assert.Equal(
                "39 '\\''",
                ObjectDisplay.FormatLiteral(
                    '\'',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    )
                );
            Assert.Equal(
                "39 '",
                ObjectDisplay.FormatLiteral('\'', ObjectDisplayOptions.IncludeCodePoints)
                );
            Assert.Equal(
                "0x001e '\\u001e'",
                ObjectDisplay.FormatLiteral(
                    '\u001e',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x001e \u001e",
                ObjectDisplay.FormatLiteral(
                    '\u001e',
                    ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );

            Assert.Equal(
                "0x0008 '\\b'",
                ObjectDisplay.FormatLiteral(
                    '\b',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x0009 '\\t'",
                ObjectDisplay.FormatLiteral(
                    '\t',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x000a '\\n'",
                ObjectDisplay.FormatLiteral(
                    '\n',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x000b '\\v'",
                ObjectDisplay.FormatLiteral(
                    '\v',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x000d '\\r'",
                ObjectDisplay.FormatLiteral(
                    '\r',
                    ObjectDisplayOptions.UseQuotes
                    | ObjectDisplayOptions.EscapeNonPrintableCharacters
                    | ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
            Assert.Equal(
                "0x000d \r",
                ObjectDisplay.FormatLiteral(
                    '\r',
                    ObjectDisplayOptions.IncludeCodePoints
                    | ObjectDisplayOptions.UseHexadecimalNumbers
                    )
                );
        }
示例#3
0
        public void Strings()
        {
            Assert.Equal("", ObjectDisplay.FormatLiteral("", ObjectDisplayOptions.None));
            Assert.Equal(@"a", ObjectDisplay.FormatLiteral(@"a", ObjectDisplayOptions.None));
            Assert.Equal(@"ab", ObjectDisplay.FormatLiteral(@"ab", ObjectDisplayOptions.None));
            Assert.Equal(@"\", ObjectDisplay.FormatLiteral(@"\", ObjectDisplayOptions.None));
            Assert.Equal(@"\a", ObjectDisplay.FormatLiteral(@"\a", ObjectDisplayOptions.None));
            Assert.Equal(@"a\b", ObjectDisplay.FormatLiteral(@"a\b", ObjectDisplayOptions.None));
            Assert.Equal(@"ab\c", ObjectDisplay.FormatLiteral(@"ab\c", ObjectDisplayOptions.None));
            Assert.Equal(@"ab\cd", ObjectDisplay.FormatLiteral(@"ab\cd", ObjectDisplayOptions.None));
            Assert.Equal(@"ab\cd\", ObjectDisplay.FormatLiteral(@"ab\cd\", ObjectDisplayOptions.None));
            Assert.Equal(@"ab\cd\e", ObjectDisplay.FormatLiteral(@"ab\cd\e", ObjectDisplayOptions.None));
            Assert.Equal(@"\\\\", ObjectDisplay.FormatLiteral(@"\\\\", ObjectDisplayOptions.None));

            Assert.Equal(@"""""", ObjectDisplay.FormatLiteral("", ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));
            Assert.Equal(@"""\""\""""", ObjectDisplay.FormatLiteral(@"""""", ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));
            Assert.Equal(@"""'""", ObjectDisplay.FormatLiteral(@"'", ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));
            Assert.Equal(@"""ab""", ObjectDisplay.FormatLiteral(@"ab", ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));
            Assert.Equal(@"""\\""", ObjectDisplay.FormatLiteral(@"\", ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));

            Assert.Equal("\"x\"", ObjectDisplay.FormatLiteral("x", ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));
            Assert.Equal("x", ObjectDisplay.FormatLiteral("x", ObjectDisplayOptions.None));

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < 255; i++)
            {
                sb.Append((char)i);
            }
            var s = sb.ToString();

            var expected =
                "\"\\0\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\a\\b\\t\\n\\v\\f\\r\\u000e\\u000f\\u0010" +
                "\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d" +
                "\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" +
                "\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u007f\\u0080\\u0081\\u0082\\u0083\\u0084\\u0085" +
                "\\u0086\\u0087\\u0088\\u0089\\u008a\\u008b\\u008c\\u008d\\u008e\\u008f\\u0090\\u0091\\u0092" +
                "\\u0093\\u0094\\u0095\\u0096\\u0097\\u0098\\u0099\\u009a\\u009b\\u009c\\u009d\\u009e\\u009f" +
                " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèé" +
                "êëìíîïðñòóôõö÷øùúûüýþ\"";

            Assert.Equal(
                expected,
                ObjectDisplay.FormatLiteral(s, ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters));

            expected =
                "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\u0008\u0009\u000a\u000b\f\u000d\u000e\u000f\u0010" +
                "\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d" +
                "\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" +
                "\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f\u0080\u0081\u0082\u0083\u0084\u0085" +
                "\u0086\u0087\u0088\u0089\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092" +
                "\u0093\u0094\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\u009f" +
                " ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèé" +
                "êëìíîïðñòóôõö÷øùúûüýþ";
            Assert.Equal(
                expected,
                ObjectDisplay.FormatLiteral(s, ObjectDisplayOptions.None));

            var arabic = "انتخابات مبكرة، بعد يوم حافل بالاحداث السياسية، بعد";

            s = ObjectDisplay.FormatLiteral(arabic, ObjectDisplayOptions.None);
            Assert.Equal(arabic, s);

            var hebrew = "והמנהלים רפואיים של ארבעת קופות החולים. בסיום הפגישה הבהיר";

            s = ObjectDisplay.FormatLiteral(hebrew, ObjectDisplayOptions.None);
            Assert.Equal(hebrew, s);
        }
示例#4
0
 private void UpdateView()
 {
     ObjectDisplay.Invalidate();
     MapDisplay.Invalidate();
 }
 public override string FormatLiteral(bool value)
 {
     return(ObjectDisplay.FormatLiteral(value));
 }
示例#6
0
 internal override string FormatLiteral(char c, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatLiteral(c, options));
 }
示例#7
0
 internal override string FormatPrimitiveObject(object value, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatPrimitive(value, options));
 }
示例#8
0
 internal override string FormatLiteral(float value)
 {
     return(ObjectDisplay.FormatLiteral(value, ObjectDisplayOptions.None));
 }
        protected override string FormatLiteral(string value, bool useQuotes, bool escapeNonPrintable, int numberRadix = NumberRadixDecimal)
        {
            var options = GetObjectDisplayOptions(useQuotes: useQuotes, escapeNonPrintable: escapeNonPrintable, numberRadix: numberRadix);

            return(ObjectDisplay.FormatLiteral(value, options));
        }
示例#10
0
 internal override string FormatLiteral(int value, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatLiteral(value, options & ~(ObjectDisplayOptions.UseQuotes | ObjectDisplayOptions.EscapeNonPrintableCharacters)));
 }
示例#11
0
 internal override string FormatString(string str, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatLiteral(str, options));
 }
示例#12
0
 public override void OnDeath(ObjectDisplay damagedBy)
 {
     _playUI.Win();
 }
示例#13
0
 public override string FormatLiteral(ulong value, bool useHexadecimalNumbers = false)
 {
     return(ObjectDisplay.FormatLiteral(value, useHexadecimalNumbers));
 }
示例#14
0
 public override string FormatLiteral(char c, bool quote, bool useHexadecimalNumbers = false, bool includeCodePoints = false)
 {
     return(ObjectDisplay.FormatLiteral(c, quote, useHexadecimalNumbers, includeCodePoints));
 }
示例#15
0
        private string FormatPrimitiveUsingHexadecimalNumbers(object obj, bool quoteStrings = false)
        {
            var options = quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None;

            return(ObjectDisplay.FormatPrimitive(obj, options | ObjectDisplayOptions.UseHexadecimalNumbers));
        }
        protected override string FormatLiteral(char c, bool useQuotes, bool escapeNonPrintable, bool includeCodePoints = false, int numberRadix = NumberRadixDecimal)
        {
            var options = GetObjectDisplayOptions(useQuotes: useQuotes, escapeNonPrintable: escapeNonPrintable, includeCodePoints: includeCodePoints, numberRadix: numberRadix);

            return(ObjectDisplay.FormatLiteral(c, options));
        }
示例#17
0
        private string FormatPrimitiveIncludingTypeSuffix(object obj, bool useHexadecimalNumbers = false)
        {
            var options = useHexadecimalNumbers ? ObjectDisplayOptions.UseHexadecimalNumbers : ObjectDisplayOptions.None;

            return(ObjectDisplay.FormatPrimitive(obj, options | ObjectDisplayOptions.IncludeTypeSuffix));
        }
 protected override string FormatLiteral(ulong value, int numberRadix = NumberRadixDecimal, CultureInfo cultureInfo = null)
 {
     return(ObjectDisplay.FormatLiteral(value, GetObjectDisplayOptions(numberRadix: numberRadix), cultureInfo));
 }
示例#19
0
 internal override string FormatLiteral(int value, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatLiteral(value, options & ~ObjectDisplayOptions.UseQuotes));
 }
 protected override string FormatLiteral(decimal value, CultureInfo cultureInfo = null)
 {
     return(ObjectDisplay.FormatLiteral(value, ObjectDisplayOptions.None, cultureInfo));
 }
示例#21
0
 internal override string FormatString(string str, ObjectDisplayOptions options)
 {
     return(ObjectDisplay.FormatString(str, useQuotes: options.IncludesOption(ObjectDisplayOptions.UseQuotes)));
 }
示例#22
0
        private string FormatPrimitive(object obj, bool quoteStrings = false)
        {
            var options = quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None;

            return(ObjectDisplay.FormatPrimitive(obj, options | ObjectDisplayOptions.EscapeNonPrintableCharacters));
        }
 public override string FormatLiteral(decimal value)
 {
     return(ObjectDisplay.FormatLiteral(value, ObjectDisplayOptions.None));
 }
示例#24
0
 protected override void AddLiteralValue(SpecialType type, object value)
 {
     _builder.Append(ObjectDisplay.FormatPrimitive(value, ObjectDisplayOptions.None), CodeFileTokenKind.Literal);
 }
 public override string FormatLiteral(uint value, bool useHexadecimalNumbers = false)
 {
     return(ObjectDisplay.FormatLiteral(value, GetObjectDisplayOptions(useHexadecimalNumbers)));
 }
示例#26
0
 protected override void AddExplicitlyCastedLiteralValue(INamedTypeSymbol namedType, SpecialType type, object value)
 {
     _builder.Append(ObjectDisplay.FormatPrimitive(value, ObjectDisplayOptions.None), CodeFileTokenKind.Literal);
 }
示例#27
0
        public void CultureInvariance()
        {
            using (new CultureContext(new CultureInfo("de-DE", useUserOverride: false)))
            {
                var decimalValue = new Decimal(12.5);
                Assert.Equal("12,5", decimalValue.ToString());
                Assert.Equal(
                    "12.5",
                    ObjectDisplay.FormatLiteral(decimalValue, ObjectDisplayOptions.None)
                    );
                Assert.Equal(
                    "12.5",
                    ObjectDisplay.FormatLiteral(
                        decimalValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.InvariantCulture
                        )
                    );
                Assert.Equal(
                    "12,5",
                    ObjectDisplay.FormatLiteral(
                        decimalValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.CurrentCulture
                        )
                    );
                Assert.Equal(
                    "12.5M",
                    ObjectDisplay.FormatLiteral(
                        decimalValue,
                        ObjectDisplayOptions.IncludeTypeSuffix
                        )
                    );

                double doubleValue = 12.5;
                Assert.Equal("12,5", doubleValue.ToString());
                Assert.Equal(
                    "12.5",
                    ObjectDisplay.FormatLiteral(doubleValue, ObjectDisplayOptions.None)
                    );
                Assert.Equal(
                    "12.5",
                    ObjectDisplay.FormatLiteral(
                        doubleValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.InvariantCulture
                        )
                    );
                Assert.Equal(
                    "12,5",
                    ObjectDisplay.FormatLiteral(
                        doubleValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.CurrentCulture
                        )
                    );
                Assert.Equal(
                    "12.5D",
                    ObjectDisplay.FormatLiteral(doubleValue, ObjectDisplayOptions.IncludeTypeSuffix)
                    );

                float singleValue = 12.5F;
                Assert.Equal("12,5", singleValue.ToString());
                Assert.Equal(
                    "12.5",
                    ObjectDisplay.FormatLiteral(singleValue, ObjectDisplayOptions.None)
                    );
                Assert.Equal(
                    "12.5",
                    ObjectDisplay.FormatLiteral(
                        singleValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.InvariantCulture
                        )
                    );
                Assert.Equal(
                    "12,5",
                    ObjectDisplay.FormatLiteral(
                        singleValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.CurrentCulture
                        )
                    );
                Assert.Equal(
                    "12.5F",
                    ObjectDisplay.FormatLiteral(singleValue, ObjectDisplayOptions.IncludeTypeSuffix)
                    );

                int intValue = 12;
                Assert.Equal("12", intValue.ToString());
                Assert.Equal(
                    "12",
                    ObjectDisplay.FormatLiteral(intValue, ObjectDisplayOptions.None)
                    );
                Assert.Equal(
                    "12",
                    ObjectDisplay.FormatLiteral(
                        intValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.InvariantCulture
                        )
                    );
                Assert.Equal(
                    "12",
                    ObjectDisplay.FormatLiteral(
                        intValue,
                        ObjectDisplayOptions.None,
                        CultureInfo.CurrentCulture
                        )
                    );
            }
        }
示例#28
0
 private string FormatPrimitive(object obj, bool quoteStrings = false)
 {
     return(ObjectDisplay.FormatPrimitive(obj, quoteStrings ? ObjectDisplayOptions.UseQuotes : ObjectDisplayOptions.None));
 }
示例#29
0
 public void Strings_Verbatim()
 {
     Assert.Equal("@\"\n\"", ObjectDisplay.FormatLiteral("\n", ObjectDisplayOptions.UseQuotes));
     Assert.Equal("@\"\"\"\n\"", ObjectDisplay.FormatLiteral("\"\n", ObjectDisplayOptions.UseQuotes));
 }
示例#30
0
 public virtual void OnDeath(ObjectDisplay damagedBy)
 {
     OnDeath();
 }