Chciałbym skonfigurować frędzle Emacsa, aby wyświetlały sekcje składania kodu.
Na przykład BBEdit na komputerze Mac wyświetla następujące informacje podczas edycji pliku JSON:
Same znaki są możliwe do wykonania: kliknięcie znaku spowoduje rozwinięcie lub zwinięcie odpowiedniej sekcji kodu. Gdy dokument nie ma trybu, który obsługuje składanie kodu, grzywka nie jest wyświetlana.
Czy można w ten sposób rozszerzyć funkcjonalność Emacsa?
źródło
Hideshowvis.el
działa świetnie, dzięki! Miałem pewne problemy z uruchomieniem go z plikami JSONjs3-mode
; aby obejść te problemy, musiałem się upewnić, że tylko pokaz slajdów jest włączony po wszystkich działaniach w kolejce, np .:(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)
Chociaż nie sądzę, aby poboczne elementy mogły bezpośrednio otrzymywać kliknięcia (choć mogę się mylić), możliwym hackem byłoby powiązanie
(kbd "<left-fringe> <double-mouse-1>")
Ponieważ pierwsze kliknięcie przeniósłoby punkt na początek linii odpowiadającej ikonie grzywki, przetestowanie wartości
(point)
w twojej hipotetycznej (nie) zwijającej funkcji pozwoliłoby ci określić, która część kodu (lub) zagiąć, lub jeśli musisz w ogóle coś zrobić (na wypadek, gdyby nie było ikony frędzli dla tej linii)przykład z buforem trybu org:
Dwukrotne kliknięcie frędzli powoduje przełączenie odpowiedniego poddrzewa.
źródło