alphapapa / alphapapa/org-super-agenda

Folding with outline-minor-mode

Open
#197 4 comments 0 reactions 1 assignee Claimed by @alphapapa View on GitHub
documentation
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.