alphapapa / alphapapa/org-super-agenda
Folding with outline-minor-mode
- Dominant language
- Emacs Lisp
- Stars
- 1.5k
- Forks
- 107
- PR merge metrics
- No merged PRs in 30d
Description
I just posted this on reddit but thought it may be useful to include in the README as an alternative to using `origami` to auto-fold.
```elisp
(use-package outline
:after org-super-agenda
:general (:keymaps org-super-agenda-header-map
"TAB" #'outline-cycle)
:config
(defvar org-super-agenda-auto-fold-groups '("Stuck Tasks" "Other items" "Notice"))
;; function borrowed from new fork of origami.el https://github.com/emacs-origami/origami.el/blob/master/origami.el#L1024
(defun outline-auto-agenda (pattern-or-patterns function)
"Search buffer and apply the FUNCTION on each line.
PATTERN-OR-PATTERNS is a string or a list of strings to search"
(interactive)
(let ((patterns (if (listp pattern-or-patterns) pattern-or-patterns (list pattern-or-patterns))))
(save-excursion
(dolist (pattern patterns)
(goto-char (point-min))
(while (re-search-forward pattern nil t 1)
(unless (outline-invisible-p)
(funcall function)))))))
(defun outline-agenda-setup ()
(setq-local outline-regexp org-super-agenda-header-prefix)
(setq-local outline-level #'outline-level)
(setq-local outline-heading-alist
`((,org-super-agenda-header-prefix . 1)))
(outline-auto-agenda org-super-agenda-auto-fold-groups #'outline-hide-subtree))
:hook ((org-agenda-mode . outline-minor-mode)
(org-agenda-finalize . outline-agenda-setup)))
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.