diff --git a/modules/feature/evil/autoload/folds.el b/modules/feature/evil/autoload/folds.el index c494896f1..8ec918209 100644 --- a/modules/feature/evil/autoload/folds.el +++ b/modules/feature/evil/autoload/folds.el @@ -46,15 +46,21 @@ ;;;###autoload (autoload '+evil/fold-open-all "feature/evil/autoload/folds" nil t) (evil-define-command +evil/fold-open-all (&optional level) + "Open folds at LEVEL (or all folds if LEVEL is nil)." (interactive "") (vimish-fold-unfold-all) - (if level (hs-hide-level level) (hs-show-all))) + (if (integerp level) + (hs-hide-level (1- level)) + (hs-show-all))) -;;;###autoload (autoload '+evil/fold-close-all "feature/evil/autoload/folds" nil nil) +;;;###autoload (autoload '+evil/fold-close-all "feature/evil/autoload/folds" nil t) (evil-define-command +evil/fold-close-all (&optional level) + "Close folds at LEVEL (or all folds if LEVEL is nil)." (interactive "") (vimish-fold-refold-all) - (if level (hs-hide-level level) (hs-hide-all))) + (if (integerp level) + (hs-hide-level (1- level)) + (hs-hide-all))) ;; --- misc ------------------------------- diff --git a/modules/feature/evil/config.el b/modules/feature/evil/config.el index b242bc9d1..f45467b05 100644 --- a/modules/feature/evil/config.el +++ b/modules/feature/evil/config.el @@ -76,10 +76,18 @@ ;; --- keybind fixes ---------------------- - (after! wgrep - ;; a wrapper that invokes `wgrep-mark-deletion' across lines - ;; you use `evil-delete' on. - (map! :map wgrep-mode-map [remap evil-delete] #'+evil-delete)) + (map! (:after wgrep + ;; a wrapper that invokes `wgrep-mark-deletion' across lines + ;; you use `evil-delete' on. + :map wgrep-mode-map [remap evil-delete] #'+evil-delete) + + ;; replace native folding commands + :n "zo" #'+evil/fold-open + :n "zO" #'+evil/fold-open + :n "zc" #'+evil/fold-close + :n "za" #'+evil/fold-toggle + :n "zr" #'+evil/fold-open-all + :n "zm" #'+evil/fold-close-all) ;; --- evil hacks -------------------------