Ich möchte meinen Emacs-Rand so konfigurieren, dass er Code-Falzabschnitte anzeigt.
Beispielsweise würde BBEdit auf dem Mac beim Bearbeiten einer JSON-Datei Folgendes anzeigen:
Die Marken selbst können bearbeitet werden: Wenn Sie auf eine Marke klicken, wird der entsprechende Codeabschnitt ein- oder ausgeblendet. Wenn das Dokument keinen Modus hat, der das Falten von Code unterstützt, wird der Rand nicht angezeigt.
Ist es möglich, die Emacs-Randfunktionalität so zu erweitern?
quelle
Hideshowvis.el
funktioniert super, danke! Ich hatte einige Probleme damit, dass es mit JSON-Dateien funktioniertjs3-mode
. um diese probleme zu umgehen musste ich sicherstellen, dass hideshowvis nur nach allen aktionen in der warteschlange aktiviert ist, zb:(dolist (hook '(emacs-lisp-mode-hook c++-mode-hook)) (add-hook hook 'hideshowvis-enable)) (defun hideshowvis-enable-immediately () (run-at-time "0 seconds" nil 'hideshowvis-enable)) (add-hook 'js3-mode-hook 'hideshowvis-enable-immediately)
Ich glaube zwar nicht, dass die Randelemente direkt Klicks empfangen können (ich könnte mich jedoch irren), aber ein möglicher Hack wäre das Binden
(kbd "<left-fringe> <double-mouse-1>")
Da beim ersten Klicken der Punkt an den Anfang der Linie verschoben wird, die dem Rand-Symbol entspricht, können Sie durch Testen des Werts
(point)
in Ihrer hypothetischen (Un) Folding-Funktion ermitteln, welcher Teil des Codes (Un) Folded ist oder ob Sie müssen überhaupt nichts tun (falls für diese Zeile kein Fransensymbol vorhanden ist)Beispiel mit einem org-mode Buffer:
Durch Doppelklicken auf den Rand wird der entsprechende Teilbaum durchlaufen.
quelle