SyntaxHighlightBox

  • WPF

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Solaris.

    SyntaxHighlightBox

    Hallo,

    Ich würde gerne eine Textbox die Syntaxhighlighting unterstützt in meinem Projekt verwenden. Dabei bin ich auf dieses Control gestoßen: https://syntaxhighlightbox.codeplex.com/

    Habe es mit NuGet installiert und wie in der Dokumentation eine xml-Syntax Datei importiert und den Syntax des Controls im Window_Loaded Event gesetzt.

    Quellcode

    1. box.CurrentHighlighter = HighlighterManager.Instance.Highlighters["VDHL"];


    Hier bekomme ich dann eine KeyNotFoundException. Im Anhang findet sich das Testprojekt, dass wirklich nur die Codebox beinhaltet, damit ihr es einfacher nachstellen könnt.
    Dateien
    • vbpdemo.rar

      (106,53 kB, 76 mal heruntergeladen, zuletzt: )

    8-) faxe1008 8-)
    Buchstabendreher :) Die Datei heißt VHDL.xml und du versuchst VDHL zu laden.

    EDIT: Ok, doch nicht? Scheinbar vergibt die Box den Namen "VHDL". Mir wird da nicht so richtig ersichtlich warum sie das tut. Im Quellcode steht, dass das name Attribut des Syntax Tags als Key verwendet wird.

    Vielleicht solltest du die Library mal von CodePlex laden und selber kompilieren. Wer weiß wie alt die NuGet Version ist.

    Spoiler anzeigen
    https://syntaxhighlightbox.codeplex.com/SourceControl/latest#AurelienRibon.Ui.SyntaxHighlightBox/src/HighlighterManager.cs

    C#-Quellcode

    1. foreach (var res in GetResources("resources/(.+?)[.]xml")) {
    2. XDocument xmldoc = null;
    3. try {
    4. XmlReader reader = XmlReader.Create(res.Value, readerSettings);
    5. xmldoc = XDocument.Load(reader);
    6. } catch (XmlSchemaValidationException ex) {
    7. Debug.WriteLine("Xml validation error at line " + ex.LineNumber + " for " + res.Key + " :");
    8. Debug.WriteLine("Warning : if you cannot find the issue in the xml file, verify the xsd file.");
    9. Debug.WriteLine(ex.Message);
    10. return;
    11. } catch (Exception ex) {
    12. Debug.WriteLine(ex.Message);
    13. return;
    14. }
    15. XElement root = xmldoc.Root;
    16. String name = root.Attribute("name").Value.Trim();
    17. Highlighters.Add(name, new XmlHighlighter(root));
    18. }

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Solaris“ ()