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

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

[elpa] externals/org d560a2d739 1/3: org-lint-invalid-id-link: Only upda


From: ELPA Syncer
Subject: [elpa] externals/org d560a2d739 1/3: org-lint-invalid-id-link: Only update ID locations if there are ID links
Date: Fri, 18 Aug 2023 09:58:32 -0400 (EDT)

branch: externals/org
commit d560a2d7394cc9b016eade35360350023684448e
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>

    org-lint-invalid-id-link: Only update ID locations if there are ID links
    
    * lisp/org-lint.el (org-lint-invalid-id-link): Avoid running
    `org-id-update-id-locations' when there are no ID links in the linted
    file.
---
 lisp/org-lint.el | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/lisp/org-lint.el b/lisp/org-lint.el
index d0f6994215..7a9195cb63 100644
--- a/lisp/org-lint.el
+++ b/lisp/org-lint.el
@@ -585,18 +585,23 @@ Use :header-args: instead"
                               path)))))))))
 
 (defun org-lint-invalid-id-link (ast)
-  (org-id-update-id-locations nil t)
-  (org-element-map ast 'link
-    (lambda (link)
-      (let ((id (org-element-property :path link)))
-       (and (equal (org-element-property :type link) "id")
-             ;; The locations are up-to-date with file changes after
-             ;; the call to `org-id-update-id-locations'.  We do not
-             ;; need to double-check if recorded ID is still present
-             ;; in the file.
-            (not (org-id-find-id-file id))
-            (list (org-element-begin link)
-                  (format "Unknown ID \"%s\"" id)))))))
+  (let ((id-locations-updated nil))
+    (org-element-map ast 'link
+      (lambda (link)
+        (let ((id (org-element-property :path link)))
+         (and (equal (org-element-property :type link) "id")
+               (progn
+                 (unless id-locations-updated
+                   (org-id-update-id-locations nil t)
+                   (setq id-locations-updated t))
+                 t)
+               ;; The locations are up-to-date with file changes after
+               ;; the call to `org-id-update-id-locations'.  We do not
+               ;; need to double-check if recorded ID is still present
+               ;; in the file.
+              (not (org-id-find-id-file id))
+              (list (org-element-begin link)
+                    (format "Unknown ID \"%s\"" id))))))))
 
 (defun org-lint-confusing-brackets (ast)
   (org-element-map ast 'link



reply via email to

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