So testen Sie "font-lock-keywords" -Werte für Emacs Lisp-Code

Ich stelle die Frage, weil ich denke, dass sowohl die Frage als auch die möglichen Antworten Emacs-Benutzern helfen könnten, die Lisp-Code schreiben, der sie definiertfont-lock-keywords. Ich gebe eine Antwort, die meiner Meinung nach hilft. Ich bin auch an anderen Antworten interessiert.

Der Wert dieser Variablen ist eine Liste von Ausdrücken, von denen jeder ein oder mehrere zu vergleichende Muster oder Funktionen zum Durchführen eines Vergleichs sowie eine oder mehrere Flächen zum Hervorheben des entsprechenden Texts angeben kann. Die Möglichkeiten fürfont-lock-keywords Werte sind zahlreich und kompliziert. (Das Dokument, das dies beschreibt, ist das Elisp-Handbuch, nodeSearch-based Fontification.)

In den meisten Fällen enthält die Liste mehr als ein Element, dh mehr als ein reguläres Ausdrucksmuster. Diese können auf unterschiedliche Weise interagieren. Einige können verhindern, dass andere wirksam werden, oder sie können die Wirkung anderer verändern. Meine BibliothekDired +definiert zum Beispielfont-lock-keywords im Dired-Modus mit 31 Einträgen (Regexps), von denen viele interagieren.

Wie kann man das alles gerade halten? Wie machtSie Debuggen Sie eine solche Liste, wenn Sie sie definieren oder ändern? Sie können alle Listenelemente bis auf eines auskommentieren, um die Auswirkungen zu sehen, wenn Sie alleine sind. Und dann für einen anderen wiederholen. Und dann vielleicht ein paar zusammen und vielleicht in unterschiedlicher Reihenfolge. Ich nehme an, es gibt verschiedene Möglichkeiten, aber was machen Sie?

(OK, ich weiß, dass die meisten Elisp-Codierer nicht sehr komplex schreibenfont-lock-keywords Definitionen. Aber auch bei einfachen Definitionen kann dies kompliziert werden. Und wenn dieser Vorgang einfacher wäre, würden sich Benutzer möglicherweise nicht unnötigerweise auf ein oder zwei Einträge beschränken.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage