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

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

[elpa] externals/org 325b06b 2/3: org-element-cache: Do not carry over w


From: ELPA Syncer
Subject: [elpa] externals/org 325b06b 2/3: org-element-cache: Do not carry over warning after sync
Date: Thu, 16 Dec 2021 08:57:31 -0500 (EST)

branch: externals/org
commit 325b06bde4496a8f228bc0791174db1aec1d7c39
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>

    org-element-cache: Do not carry over warning after sync
    
    * lisp/org-element.el (org-element--cache-sync): Set
    `org-element--cache-warning' to nil at the end of synchronisation.
    We do not need to consider that next request might be merged with
    existing request in such scenario.
    (org-element--cache-before-change): Add comment explaining the use of 
`org-element--cache-warning'.
---
 lisp/org-element.el | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lisp/org-element.el b/lisp/org-element.el
index 9b52372..d2e493c 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -5932,6 +5932,7 @@ The buffer is: %s\n Current command: %S\n Chars modified: 
%S\n Buffer modified:
          ;; Otherwise, reset keys.
          (if org-element--cache-sync-requests
              (org-element--cache-set-timer buffer)
+            (setq org-element--cache-change-warning nil)
             (setq org-element--cache-sync-keys-value (1+ 
org-element--cache-sync-keys-value))))))))
 
 (defun org-element--cache-process-request
@@ -6533,6 +6534,17 @@ The function returns the new value of 
`org-element--cache-change-warning'."
                            end
                          (line-end-position)))))
          (prog1
+             ;; Use the worst change warning to not miss important edits.
+             ;; This function is called before edit and after edit by
+             ;; `org-element--cache-after-change'.  Before the edit, we still
+             ;; want to use the old value if it comes from previous
+             ;; not yet processed edit (they may be merged by
+             ;; `org-element--cache-submit-request').  After the edit, we want 
to
+             ;; look if there was a sensitive removed during edit.
+             ;; FIXME: This is not the most efficient way and we now
+             ;; have to delete more elemetns than needed in some
+             ;; cases.  A better approach may be storing the warning
+             ;; in the modification request itself.
              (let ((org-element--cache-change-warning-before 
org-element--cache-change-warning)
                    (org-element--cache-change-warning-after))
                (setq org-element--cache-change-warning-after



reply via email to

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