Files
.emacs.d/modules/editor/siren-folding.el
Jim Myhrberg efecb5172c chore(startup): Make various modules more lazy-loaded
This should improve startup speed a little bit.
2020-03-15 02:44:46 +00:00

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