summaryrefslogtreecommitdiffhomepage
path: root/lib/doc/jao-org-focus.el
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2025-10-21 23:52:00 +0100
committerjao <jao@gnu.org>2025-10-21 23:52:00 +0100
commit1283a71c34fd6ce4d0cde9bc84a900733ab22d59 (patch)
tree8bfa4bc69209d0b64609860e5789f94cca5d24fa /lib/doc/jao-org-focus.el
parent4334acc30c438077a6bd147c897d606227e8607e (diff)
downloadelibs-1283a71c34fd6ce4d0cde9bc84a900733ab22d59.tar.gz
elibs-1283a71c34fd6ce4d0cde9bc84a900733ab22d59.tar.bz2
org-focus: minor modes
Diffstat (limited to 'lib/doc/jao-org-focus.el')
-rw-r--r--lib/doc/jao-org-focus.el18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/doc/jao-org-focus.el b/lib/doc/jao-org-focus.el
index ac33df9..13f1201 100644
--- a/lib/doc/jao-org-focus.el
+++ b/lib/doc/jao-org-focus.el
@@ -46,6 +46,7 @@ When invoked on an indirect buffer, pops back to its base."
(if-let* ((b (get-buffer bname)))
(pop-to-buffer b)
(clone-indirect-buffer bname t)
+ (org-focus-child-mode)
(setq jao-org-focus--parent parent
jao-org-focus--section title)
(org-narrow-to-subtree)
@@ -62,7 +63,7 @@ sync."
(goto-char (point-min))
(when (re-search-forward (format "\\*+ %s" title) nil t)
(org-narrow-to-subtree)
- (beginning-of-line))))
+ (goto-char (point-min)))))
(defun jao-org-focus-redisplay-children ()
"Find focused children and redisplay them."
@@ -100,5 +101,20 @@ With arg, offer to switch to all children, regardless of their parent."
:history jao-org-focus--focused-history
:items ,(lambda () (mapcar 'buffer-name (jao-org-focus-list t)))))
+(define-minor-mode org-focus-mode
+ "A mode where keeping track of focused children is on by default."
+ :lighter " ◎"
+ :keymap '(("\C-cl" . jao-org-focus-switch)
+ ("\C-cR" . jao-org-focus-redisplay)
+ ("\C-co" . jao-org-focus))
+ (if org-focus-mode
+ (add-hook 'after-save-hook #'jao-org-focus-redisplay-children nil t)
+ (remove-hook 'after-save-hook #'jao-org-focus-redisplay-children t)))
+
+(define-minor-mode org-focus-child-mode
+ "A mode for the children of a focused org buffer."
+ :lighter " ◉"
+ :keymap org-focus-mode-map)
+
(provide 'jao-org-focus)
;;; jao-org.el ends here