emacs-elpa-diffs
[Top][All Lists]
Advanced

[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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]