emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 99483e214fd 2/3: Set org-macro-templates more lazily


From: Stefan Monnier
Subject: master 99483e214fd 2/3: Set org-macro-templates more lazily
Date: Sun, 3 Mar 2024 18:09:00 -0500 (EST)

branch: master
commit 99483e214fdafa76e8001c7009dff13a76c33f32
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    Set org-macro-templates more lazily
---
 lisp/org/org-macro.el |  8 +++++---
 lisp/org/org-macs.el  |  4 +++-
 lisp/org/org.el       | 21 ++++++++++-----------
 3 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/lisp/org/org-macro.el b/lisp/org/org-macro.el
index 737eab5d2bb..acc8f5e593b 100644
--- a/lisp/org/org-macro.el
+++ b/lisp/org/org-macro.el
@@ -78,12 +78,14 @@
 
 ;;; Variables
 
-(defvar-local org-macro-templates nil
+(defvar-local org-macro-templates t
   "Alist containing all macro templates in current buffer.
 Associations are in the shape of (NAME . TEMPLATE) where NAME
 stands for macro's name and template for its replacement value,
-both as strings.  This is an internal variable.  Do not set it
-directly, use instead:
+both as strings.
+`t' means that it has not yet been initialized.
+
+This is an internal variable.  Do not set it directly, use instead:
 
   #+MACRO: name template")
 
diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el
index aafbdf0e0aa..53943d343d8 100644
--- a/lisp/org/org-macs.el
+++ b/lisp/org/org-macs.el
@@ -132,6 +132,8 @@ Version mismatch is commonly encountered in the following 
situations:
 
 ;; Use `with-silent-modifications' to ignore cosmetic changes and
 ;; `org-unmodified' to ignore real text modifications.
+;; FIXME: Won't "real text modifications" break the undo data if
+;; `buffer-undo-list' is let-bound to t?
 (defmacro org-unmodified (&rest body)
   "Run BODY while preserving the buffer's `buffer-modified-p' state."
   (declare (debug (body)))
@@ -141,7 +143,7 @@ Version mismatch is commonly encountered in the following 
situations:
            (let ((buffer-undo-list t)
                 (inhibit-modification-hooks t))
             ,@body)
-        (set-buffer-modified-p ,was-modified)))))
+        (restore-buffer-modified-p ,was-modified)))))
 
 (defmacro org-with-base-buffer (buffer &rest body)
   "Run BODY in base buffer for BUFFER.
diff --git a/lisp/org/org.el b/lisp/org/org.el
index d361408eaca..3fb8fce78d3 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -716,8 +716,9 @@ defined in org-duration.el.")
   "Load all extensions listed in `org-modules'."
   (when (or force (not org-modules-loaded))
     (dolist (ext org-modules)
-      (condition-case nil (require ext)
-       (error (message "Problems while trying to load feature `%s'" ext))))
+      (condition-case err (require ext)
+       (error (message "Problems while trying to load feature `%s':\n%S"
+                       ext err))))
     (setq org-modules-loaded t)))
 
 (defun org-set-modules (var value)
@@ -855,7 +856,7 @@ depends on, if any."
   :group 'org-export
   :version "26.1"
   :package-version '(Org . "9.0")
-  :initialize 'custom-initialize-set
+  :initialize #'custom-initialize-set
   :set (lambda (var val)
         (if (not (featurep 'ox)) (set-default-toplevel-value var val)
           ;; Any back-end not required anymore (not present in VAL and not
@@ -905,9 +906,9 @@ depends on, if any."
 
 (eval-after-load 'ox
   '(dolist (backend org-export-backends)
-     (condition-case nil (require (intern (format "ox-%s" backend)))
-       (error (message "Problems while trying to load export back-end `%s'"
-                      backend)))))
+     (condition-case err (require (intern (format "ox-%s" backend)))
+       (error (message "Problems while trying to load export back-end 
`%s':\n%S"
+                      backend err)))))
 
 (defcustom org-support-shift-select nil
   "Non-nil means make shift-cursor commands select text when possible.
@@ -4772,7 +4773,7 @@ This is for getting out of special buffers like capture.")
 (require 'org-pcomplete)
 (require 'org-src)
 (require 'org-footnote)
-(require 'org-macro)
+;; (require 'org-macro)
 
 ;; babel
 (require 'ob)
@@ -4852,8 +4853,6 @@ The following commands are available:
   (when (and org-element-cache-persistent
              org-element-use-cache)
     (org-persist-load 'org-element--cache (current-buffer) t))
-  ;; Initialize macros templates.
-  (org-macro-initialize-templates)
   ;; Initialize radio targets.
   (org-update-radio-target-regexp)
   ;; Indentation.
@@ -10459,7 +10458,7 @@ EXTRA is additional text that will be inserted into the 
notes buffer."
         org-log-note-this-command this-command
         org-log-note-recursion-depth (recursion-depth)
         org-log-setup t)
-  (add-hook 'post-command-hook 'org-add-log-note 'append))
+  (add-hook 'post-command-hook #'org-add-log-note 'append))
 
 (defun org-skip-over-state-notes ()
   "Skip past the list of State notes in an entry."
@@ -10488,7 +10487,7 @@ EXTRA is additional text that will be inserted into the 
notes buffer."
   "Pop up a window for taking a note, and add this note later."
   (when (and (equal org-log-note-this-command this-command)
              (= org-log-note-recursion-depth (recursion-depth)))
-    (remove-hook 'post-command-hook 'org-add-log-note)
+    (remove-hook 'post-command-hook #'org-add-log-note)
     (setq org-log-setup nil)
     (setq org-log-note-window-configuration (current-window-configuration))
     (delete-other-windows)



reply via email to

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