public void SetText()

in src/StructuredLogViewer/Controls/TextViewerControl.xaml.cs [137:213]


        public void SetText(string text)
        {
            Text = text;
            textEditor.Text = text;

            if (text.Length > 200 && !text.Contains("\n"))
            {
                wordWrap.IsChecked = true;
            }

            if (solutionFileRegex.IsMatch(text))
            {
                IsXml = false;

                using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("StructuredLogViewer.Resources.SolutionFile.xshd"))
                using (var reader = XmlReader.Create(stream))
                {
                    textEditor.SyntaxHighlighting = HighlightingLoader.Load(reader, HighlightingManager.Instance);
                }

                return;
            }

            bool looksLikeXml = Utilities.LooksLikeXml(text);
            if (looksLikeXml && !IsXml)
            {
                IsXml = true;

                var highlighting = HighlightingManager.Instance.GetDefinition("XML");
                if (SettingsService.UseDarkTheme)
                {
                    SetColor("Comment", "#57A64A");
                    SetColor("CData", "#E9D585");
                    SetColor("DocType", "#92CAF4");
                    SetColor("XmlDeclaration", "#92CAF4");
                    SetColor("XmlTag", "#569CD6");
                    SetColor("AttributeName", "#92CAF4");
                    SetColor("AttributeValue", "#C8C8C8");
                    SetColor("Entity", "#92CAF4");
                    SetColor("BrokenEntity", "#92CAF4");
                }
                else
                {
                    SetColor("Comment", "#008000");
                    SetColor("CData", "#808080");
                    SetColor("DocType", "#0000FF");
                    SetColor("XmlDeclaration", "#0000FF");
                    SetColorRgb("XmlTag", 163, 21, 21);
                    SetColor("AttributeName", "#FF0000");
                    SetColor("AttributeValue", "#0000FF");
                    SetColor("Entity", "#FF0000");
                    SetColor("BrokenEntity", "#FF0000");
                }

                void SetColorRgb(string name, byte r, byte g, byte b)
                {
                    highlighting.GetNamedColor(name).Foreground = new SimpleHighlightingBrush(Color.FromRgb(r, g, b));
                }

                void SetColor(string name, string hex)
                {
                    var color = (Color)ColorConverter.ConvertFromString(hex);
                    SetColorRgb(name, color.R, color.G, color.B);
                }

                textEditor.SyntaxHighlighting = highlighting;

                var foldingStrategy = new XmlFoldingStrategy();
                foldingStrategy.UpdateFoldings(foldingManager, textEditor.Document);
            }
            else if (!looksLikeXml && IsXml)
            {
                IsXml = false;

                textEditor.SyntaxHighlighting = null;
            }
        }