Saya ingin mengkonfigurasi pinggiran Emacs saya untuk menunjukkan bagian kode lipat.
Misalnya, BBEdit di Mac akan menampilkan yang berikut saat mengedit file JSON:
Tanda itu sendiri dapat ditindaklanjuti: mengklik tanda akan memperluas atau menutup bagian kode yang sesuai. Ketika dokumen tidak memiliki mode yang mendukung pelipatan kode, pinggiran tidak ditampilkan.
Apakah mungkin untuk memperluas fungsionalitas pinggiran Emacs sedemikian rupa?
sumber
Hideshowvis.el
bekerja dengan baik, terima kasih! Saya punya beberapa masalah untuk membuatnya bekerja pada file JSON denganjs3-mode
; untuk mengatasi masalah ini, saya harus memastikan bahwa hontonvis hanya diaktifkan setelah semua tindakan dalam antrian, misalnya:(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)
Meskipun saya tidak berpikir item pinggiran dapat langsung menerima klik (meskipun saya mungkin salah), hack mungkin akan mengikat
(kbd "<left-fringe> <double-mouse-1>")
Karena klik pertama akan memindahkan titik ke awal baris yang sesuai dengan ikon pinggiran, menguji nilai
(point)
dalam fungsi lipat (tidak) hipotetis Anda akan memungkinkan Anda untuk mengidentifikasi bagian kode mana ke (tidak) lipat, atau jika Anda perlu melakukan apa saja (jika tidak ada ikon pinggiran untuk garis ini)contoh dengan buffer mode-org:
Mengklik dua kali pada pinggiran membentuk subtree yang sesuai.
sumber