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

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

[elpa] externals/ivy-hydra b9eb3c1 162/395: swiper.el (swiper--line-numb


From: Basil L. Contovounesios
Subject: [elpa] externals/ivy-hydra b9eb3c1 162/395: swiper.el (swiper--line-number): Works with ivy-mark
Date: Thu, 25 Feb 2021 08:31:54 -0500 (EST)

branch: externals/ivy-hydra
commit b9eb3c1eb39f668bbbf8bcac4c0b8a60c7c6c65b
Author: Oleh Krehel <ohwoeowho@gmail.com>
Commit: Oleh Krehel <ohwoeowho@gmail.com>

    swiper.el (swiper--line-number): Works with ivy-mark
    
    Since `ivy-mark' adds one char, the line number property can move.
    
    Fixes #2470
---
 swiper.el | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/swiper.el b/swiper.el
index d5cbe6c..8f936f8 100644
--- a/swiper.el
+++ b/swiper.el
@@ -619,7 +619,7 @@ When non-nil, INITIAL-INPUT is the initial search pattern."
               (if (eq (ivy-state-caller ivy-last) 'swiper-isearch)
                   (swiper--isearch-occur-cands cands)
                 (mapcar (lambda (s)
-                          (let ((n (get-text-property 0 'swiper-line-number 
s)))
+                          (let ((n (swiper--line-number s)))
                             (setq s (substring s 1))
                             (add-text-properties 0 1 (list 'swiper-line-number 
n) s)
                             (cons n s)))
@@ -819,7 +819,7 @@ When non-nil, INITIAL-INPUT is the initial search pattern."
                    (if initial-input
                        (cl-position-if
                         (lambda (x)
-                          (= (1+ preselect) (get-text-property 0 
'swiper-line-number x)))
+                          (= (1+ preselect) (swiper--line-number x)))
                         (progn
                           (setq ivy--old-re nil)
                           (ivy--filter initial-input candidates)))
@@ -955,7 +955,7 @@ the face, window and priority of the overlay."
           (let* ((re (replace-regexp-in-string
                       "    " "\t"
                       re))
-                 (num (get-text-property 0 'swiper-line-number 
(ivy-state-current ivy-last))))
+                 (num (swiper--line-number (ivy-state-current ivy-last))))
             (unless (memq this-command '(ivy-yank-word
                                          ivy-yank-symbol
                                          ivy-yank-char
@@ -1093,9 +1093,13 @@ WND, when specified is the window."
            (recenter))))
   (setq swiper--current-window-start (window-start)))
 
+(defun swiper--line-number (x)
+  (or (get-text-property 0 'swiper-line-number x)
+      (get-text-property 1 'swiper-line-number x)))
+
 (defun swiper--action (x)
   "Goto line X."
-  (let ((ln (1- (get-text-property 0 'swiper-line-number x)))
+  (let ((ln (1- (swiper--line-number x)))
         (re (ivy--regex ivy-text))
         (case-fold-search (ivy--case-fold-p ivy-text)))
     (if (null x)
@@ -1212,7 +1216,7 @@ otherwise continue prompting for buffers."
         (with-ivy-window
           (switch-to-buffer buffer-name)
           (goto-char (point-min))
-          (forward-line (1- (get-text-property 0 'swiper-line-number x)))
+          (forward-line (1- (swiper--line-number x)))
           (re-search-forward
            (ivy--regex ivy-text)
            (line-end-position) t)



reply via email to

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