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

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

[elpa] externals/jinx ddec95d110 2/2: jinx--nearest-overlay: Check overl


From: ELPA Syncer
Subject: [elpa] externals/jinx ddec95d110 2/2: jinx--nearest-overlay: Check overlay visibility
Date: Sun, 26 Mar 2023 14:58:11 -0400 (EDT)

branch: externals/jinx
commit ddec95d110e5424529e0b04a1524003ba85e3148
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    jinx--nearest-overlay: Check overlay visibility
---
 jinx.el | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/jinx.el b/jinx.el
index bacb1f753f..6cbe136fef 100644
--- a/jinx.el
+++ b/jinx.el
@@ -469,8 +469,7 @@ Return list of overlays, see `jinx--get-overlays'."
     (setq start (jinx--check-region start end)
           end (cdr start) start (car start))
     (message "Done")
-    (or (jinx--get-overlays start end)
-        (error "No misspelled word found"))))
+    (jinx--get-overlays start end)))
 
 (defun jinx--annotate-suggestion (word)
   "Annotate WORD during completion."
@@ -598,12 +597,14 @@ Return list of overlays, see `jinx--get-overlays'."
 
 (defun jinx--nearest-overlay ()
   "Find nearest misspelled word."
-  (let* ((overlays (or (jinx--get-overlays (window-start) (window-end))
-                       (jinx--force-overlays (window-start) (window-end))))
-         (nearest (car overlays)))
-    (dolist (ov (cdr overlays) nearest)
-      (when (< (abs (- (overlay-start ov) (point)))
-               (abs (- (overlay-start nearest) (point))))
+  (let ((overlays (or (jinx--get-overlays (window-start) (window-end))
+                      (jinx--force-overlays (window-start) (window-end))))
+        nearest)
+    (dolist (ov overlays nearest)
+      (when (and (not (invisible-p (overlay-start ov)))
+                 (or (not nearest)
+                     (< (abs (- (overlay-start ov) (point)))
+                        (abs (- (overlay-start nearest) (point))))))
         (setq nearest ov)))))
 
 ;;;; Public commands
@@ -620,11 +621,13 @@ If predicate argument ALL is given correct all 
misspellings."
           (cl-letf (((symbol-function #'jinx--timer-handler) #'ignore)) ;; 
Inhibit
             (if all
                 (dolist (overlay
-                         (sort (jinx--force-overlays (point-min) (point-max))
+                         (sort (or (jinx--force-overlays (point-min) 
(point-max))
+                                   (user-error "No misspellings in whole 
buffer"))
                                (lambda (a b) (< (overlay-start a) 
(overlay-start b)))))
                   (when (overlay-buffer overlay) ;; Could be already deleted
                     (jinx--correct overlay 'recenter)))
-              (jinx--correct (jinx--nearest-overlay))))))
+              (jinx--correct (or (jinx--nearest-overlay)
+                                 (user-error "No misspelling in visible 
text")))))))
     (jit-lock-refontify)))
 
 ;;;###autoload



reply via email to

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