[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org bcfed0f341 1/2: org-cycle.el: New custom setting `o
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org bcfed0f341 1/2: org-cycle.el: New custom setting `org-cycle-hide-drawer-startup' |
Date: |
Sat, 25 Jun 2022 01:57:51 -0400 (EDT) |
branch: externals/org
commit bcfed0f3417238dac63aed265061618d45fbd4e7
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
org-cycle.el: New custom setting `org-cycle-hide-drawer-startup'
* lisp/org-cycle.el (org-cycle-hide-drawer-startup):
* lisp/org-cycle.el (org-cycle-set-startup-visibility): Add new
customization to control initial folding state of the drawers.
* lisp/org.el (org-startup-options): Provide #+STARTUP option for the
new setting.
Fixes https://list.orgmode.org/m235gww8wg.fsf@ntnu.no/T/#u
---
etc/ORG-NEWS | 22 ++++++++++++++++++++++
lisp/org-cycle.el | 12 +++++++++++-
lisp/org.el | 2 ++
3 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 7225031ee6..902d702563 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -291,6 +291,28 @@ The new variable name is =org-plantuml-args=. It now
applies to both
jar PlantUML file and executable.
** Miscellaneous
+*** A new custom setting =org-hide-drawer-startup= to control initial folding
state of drawers
+
+Previously, all the drawers were always folded when opening an Org
+file. This only had an effect on the drawers outside folded
+headlines. The drawers inside folded headlines were re-folded because
+=org-cycle-hide-drawers= was present inside =org-cycle-hook=.
+
+With the new folding backend, running =org-cycle-hide-drawers= is no
+longer needed if all the drawers are truly folded on startup: [[*Folding
+state of the drawers is now preserved when cycling headline
+visibility]]. However, this has an unwanted effect when a user does
+not want the drawers to be folded (see
[[https://orgmode.org/list/m2r14f407q.fsf@ntnu.no][this bug report]]).
+
+The new custom setting gives more control over initial folding state
+of the drawers. When set to =nil= (default is =t=), the drawers are
+not folded on startup.
+
+The folding state can also be controlled on per-file basis using
+=STARTUP= keyword:
+
+: #+startup: hidedrawers
+: #+startup: nohidedrawers
*** Styles are customizable in ~biblatex~ citation processor
diff --git a/lisp/org-cycle.el b/lisp/org-cycle.el
index b15ead788a..fb7ff47490 100644
--- a/lisp/org-cycle.el
+++ b/lisp/org-cycle.el
@@ -119,6 +119,16 @@ This can also be set in on a per-file basis with
:group 'org-cycle
:type 'boolean)
+(defcustom org-cycle-hide-drawer-startup t
+ "Non-nil means entering Org mode will fold all drawers.
+This can also be set in on a per-file basis with
+
+#+STARTUP: hidedrawers
+#+STARTUP: nohidedrawers"
+ :group 'org-startup
+ :group 'org-cycle
+ :type 'boolean)
+
(defcustom org-cycle-global-at-bob nil
"Cycle globally if cursor is at beginning of buffer and not at a headline.
@@ -603,7 +613,7 @@ With a numeric prefix, show all headlines up to that level."
(when org-cycle-hide-block-startup (org-fold-hide-block-all))
(org-cycle-set-visibility-according-to-property)
(org-cycle-hide-archived-subtrees 'all)
- (org-cycle-hide-drawers 'all)
+ (when org-cycle-hide-drawer-startup (org-cycle-hide-drawers 'all))
(org-cycle-show-empty-lines t)))
(defun org-cycle-set-visibility-according-to-property ()
diff --git a/lisp/org.el b/lisp/org.el
index ed3b08e5dd..60c066b4b6 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -3990,6 +3990,8 @@ After a match, the following groups carry important
information:
("noptag" org-tag-persistent-alist nil)
("hideblocks" org-hide-block-startup t)
("nohideblocks" org-hide-block-startup nil)
+ ("hidedrawers" org-hide-drawer-startup t)
+ ("nohidedrawers" org-hide-drawer-startup nil)
("beamer" org-startup-with-beamer-mode t)
("entitiespretty" org-pretty-entities t)
("entitiesplain" org-pretty-entities nil))