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

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

[nongnu] elpa/annotate e1a0917d98 197/372: - fixed 'annotate-previous-an


From: ELPA Syncer
Subject: [nongnu] elpa/annotate e1a0917d98 197/372: - fixed 'annotate-previous-annotation-ends' and 'annotate-next-annotation-ends'
Date: Fri, 4 Feb 2022 16:58:59 -0500 (EST)

branch: elpa/annotate
commit e1a0917d98751b18f3f6563c5a67921bb5c7b368
Author: cage <cage-invalid@invalid>
Commit: cage <cage-invalid@invalid>

    - fixed 'annotate-previous-annotation-ends' and 
'annotate-next-annotation-ends'
      we was checking for an annotation but 'annotate-annotation-at' returned a 
list
      instead, now the latter return an annotation or nil.
---
 annotate.el | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/annotate.el b/annotate.el
index e8146b83d4..46cf145464 100644
--- a/annotate.el
+++ b/annotate.el
@@ -1492,27 +1492,31 @@ The searched interval can be customized setting the 
variable:
           (concat " \n" (make-string annotate-annotation-column ? ))
         (make-string prefix-length ? )))))
 
-(defun annotate-annotations-at (pos)
+(defun annotate-annotation-at (pos)
   "Returns the annotations (overlay where (annotationp overlay) -> t)
-   at positions pos or nil if no annotations exists at pos"
-  (cl-remove-if-not #'annotationp
-                    (overlays-at pos)))
+at positions pos or nil if no annotations exists at pos.
+
+NOTE this assumes that annotations never overlaps so the list of
+all annotations can contains only one element maximum."
+  (let ((all (cl-remove-if-not #'annotationp
+                               (overlays-at pos))))
+    (cl-first all)))
 
 (defun annotate-previous-annotation-ends (pos)
   "Returns the previous annotation that ends before pos or nil if no annotation
 was found.
 NOTE this assumes that annotations never overlaps"
   (cl-labels ((previous-annotation-ends (start)
-                (let ((all-annotations (annotate-annotations-at start)))
+                (let ((annotation (annotate-annotation-at start)))
                   (while (and (>= (1- start)
                                   (point-min))
-                              (null all-annotations))
+                              (null annotation))
                     (setf start (1- start))
-                    (setf all-annotations (annotate-annotations-at (1- 
start))))
-                  all-annotations)))
-    (let ((all-annotations (annotate-annotations-at pos)))
-      (if all-annotations
-          (previous-annotation-ends (1- (overlay-start (cl-first 
all-annotations))))
+                    (setf annotation (annotate-annotation-at (1- start))))
+                  annotation)))
+    (let ((annotation (annotate-annotation-at pos)))
+      (if annotation
+          (previous-annotation-ends (1- (overlay-start annotation)))
         (previous-annotation-ends pos)))))
 
 (defun annotate-next-annotation-starts (pos)
@@ -1520,16 +1524,16 @@ NOTE this assumes that annotations never overlaps"
 was found.
 NOTE this assumes that annotations never overlaps"
   (cl-labels ((next-annotation-ends (start)
-                (let ((all-annotations (annotate-annotations-at start)))
+                (let ((annotation (annotate-annotation-at start)))
                   (while (and (<= (1+ start)
                                   (point-max))
-                              (null all-annotations))
+                              (null annotation))
                     (setf start (1+ start))
-                    (setf all-annotations (annotate-annotations-at (1+ 
start))))
-                  all-annotations)))
-    (let ((all-annotations (annotate-annotations-at pos)))
-      (if all-annotations
-          (next-annotation-ends (overlay-end (cl-first all-annotations)))
+                    (setf annotation (annotate-annotation-at (1+ start))))
+                  annotation)))
+    (let ((annotation (annotate-annotation-at pos)))
+      (if annotation
+          (next-annotation-ends (overlay-end annotation))
         (next-annotation-ends pos)))))
 
 (defun annotate-symbol-strictly-at-point ()



reply via email to

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