mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
48 lines
1.2 KiB
EmacsLisp
48 lines
1.2 KiB
EmacsLisp
;;; siren-folding.el --- jimeh's Emacs Siren: folding configuration.
|
|
|
|
;;; Commentary:
|
|
|
|
;; Basic configuration for folding code.
|
|
|
|
;;; Code:
|
|
|
|
(use-package hideshow
|
|
:straight (:type built-in)
|
|
|
|
:bind
|
|
("C-=" . siren-folding-toggle-selective-display)
|
|
("C-c C-h" . siren-folding-toggle)
|
|
|
|
:init
|
|
(defun siren-folding (&optional arg)
|
|
"Activate or deactivate code folding.
|
|
Optional ARG is passed directly to mode toggle function."
|
|
(hs-minor-mode (or arg t))
|
|
(if window-system (hideshowvis-minor-mode (or arg t))))
|
|
|
|
(defun siren-folding-toggle (column)
|
|
"Toggle hiding/showing blocks via hs-mode.
|
|
|
|
Borrowed from: http://www.emacswiki.org/emacs/HideShow"
|
|
(interactive "P")
|
|
(if hs-minor-mode
|
|
(if (condition-case nil
|
|
(hs-toggle-hiding)
|
|
(error t))
|
|
(hs-show-all))
|
|
(siren-folding-toggle-selective-display column)))
|
|
|
|
(defun siren-folding-toggle-selective-display (column)
|
|
"Helper function for `siren-folding-toggle'."
|
|
(interactive "P")
|
|
(set-selective-display
|
|
(or column
|
|
(unless selective-display
|
|
(1+ (current-column)))))))
|
|
|
|
(use-package hideshowvis
|
|
:defer t)
|
|
|
|
(provide 'siren-folding)
|
|
;;; siren-folding.el ends here
|