Ejemplo n.º 1
0
        public KeyWord(string n, string c, string t)
        {
            name  = n;
            color = c;
            switch (t)
            {
            case "1":
                type = typeOfKeyword.normal;
                break;

            case "2":
                type = typeOfKeyword.nxtWordyellow;
                break;

            case "3":
                type = typeOfKeyword.nxtWordgreen;
                break;

            case "4":
                type = typeOfKeyword.allgreen;
                break;

            case "5":
                type = typeOfKeyword.green;
                break;
            }
        }
Ejemplo n.º 2
0
        public FlowDocument createDocument(string text)
        {
            string        zeile;
            var           document = new FlowDocument();
            Paragraph     p;
            char          firstind;
            var           converter = new System.Windows.Media.BrushConverter();
            string        word = string.Empty;
            bool          specialkeyword = false, IsKeyword;
            typeOfKeyword type  = typeOfKeyword.normal;
            string        color = "0";

            text = text.Replace(Environment.NewLine, "-/-");
            if (text.Contains("-/-"))
            {
                do
                {
                    p     = new Paragraph();
                    zeile = text.Substring(0, text.IndexOf("-/-"));
                    while (zeile != "")
                    {
                        if (zeile.Length > 2 && zeile.Substring(0, 2) == "//")
                        {
                            p.Inlines.Add(new Run(zeile)
                            {
                                Foreground = Brushes.Green
                            });
                            zeile = "";
                        }
                        else
                        {
                            IsKeyword = false;
                            firstind  = getfirstindex(zeile);
                            if (firstind != 'n')
                            {
                                word = zeile.Substring(0, zeile.IndexOf(firstind));
                                if (specialkeyword)
                                {
                                    if (type == typeOfKeyword.allgreen)
                                    {
                                        p.Inlines.Add(new Run(zeile)
                                        {
                                            Foreground = (Brush)converter.ConvertFromString(color)
                                        });
                                        specialkeyword = false;
                                        type           = typeOfKeyword.normal;
                                        break;
                                    }
                                    else
                                    {
                                        p.Inlines.Add(new Run(word)
                                        {
                                            Foreground = (Brush)converter.ConvertFromString(color)
                                        });
                                    }
                                    specialkeyword = false;
                                    type           = typeOfKeyword.normal;
                                }
                                else
                                {
                                    foreach (var keyword in keywords)
                                    {
                                        if (keyword.Name == word.ToLower())
                                        {
                                            IsKeyword = true;
                                            if (keyword.Type == typeOfKeyword.green)
                                            {
                                                p.Inlines.Add(new Run(word)
                                                {
                                                    Foreground = (Brush)converter.ConvertFromString(keyword.Color)
                                                });
                                                continue;
                                            }
                                            else
                                            {
                                                p.Inlines.Add(new Run(word)
                                                {
                                                    Foreground = (Brush)converter.ConvertFromString(keyword.Color)
                                                });
                                            }
                                            if (keyword.Type != typeOfKeyword.normal)
                                            {
                                                specialkeyword = true;
                                                type           = keyword.Type;
                                                if (type == typeOfKeyword.allgreen)
                                                {
                                                    color = "#4ac9a7";
                                                }
                                                else
                                                {
                                                    color = "#b8c068";
                                                }
                                            }
                                        }
                                    }
                                    if (!IsKeyword)
                                    {
                                        p.Inlines.Add(new Run(word));
                                    }
                                }
                                zeile = zeile.Remove(0, word.Length + 1);
                                p.Inlines.Add(new Run(firstind.ToString()));
                            }
                            else
                            {
                                if (specialkeyword)
                                {
                                    if (type == typeOfKeyword.allgreen)
                                    {
                                        p.Inlines.Add(new Run(zeile)
                                        {
                                            Foreground = (Brush)converter.ConvertFromString(color)
                                        });
                                        specialkeyword = false;
                                        type           = typeOfKeyword.normal;
                                        break;
                                    }
                                    else
                                    {
                                        p.Inlines.Add(new Run(word)
                                        {
                                            Foreground = (Brush)converter.ConvertFromString(color)
                                        });
                                    }
                                    specialkeyword = false;
                                    type           = typeOfKeyword.normal;
                                }
                                else
                                {
                                    p.Inlines.Add(new Run(zeile));
                                }
                                break;
                            }
                        }
                    }
                    document.Blocks.Add(p);
                    text = text.Remove(0, text.IndexOf("-/-") + 3);
                } while (text.IndexOf("-/-") != text.LastIndexOf("-/-"));
            }

            else
            {
                document.Blocks.Add(new Paragraph(new Run(text)));
            }
            return(document);
        }