summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-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