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

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

[elpa] master 21b9edf 021/167: Fix up visual-line-mode limitation logic


From: Oleh Krehel
Subject: [elpa] master 21b9edf 021/167: Fix up visual-line-mode limitation logic
Date: Tue, 08 Dec 2015 10:49:39 +0000

branch: master
commit 21b9edf64a3e2c0bde14e3dc31b2dd1669904009
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Fix up visual-line-mode limitation logic
    
    * swiper.el (swiper-use-visual-line): New defvar.
    (swiper--candidates):
    (swiper--update-input-ivy):
    (swiper--action): Update.
    
    Re #227
---
 swiper.el |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/swiper.el b/swiper.el
index 0f8ff31..bd7dc18 100644
--- a/swiper.el
+++ b/swiper.el
@@ -215,16 +215,22 @@
 (defvar swiper--width nil
   "Store the amount of digits needed for the longest line nubmer.")
 
+(defvar swiper-use-visual-line nil
+  "When non-nil, use `line-move' instead of `forward-line'.")
+
 (defun swiper--candidates ()
   "Return a list of this buffer lines."
+  (setq swiper-use-visual-line
+        (and (not (eq major-mode 'org-mode))
+             visual-line-mode
+             (< (buffer-size) 20000)))
   (let ((n-lines (count-lines (point-min) (point-max))))
     (unless (zerop n-lines)
       (setq swiper--width (1+ (floor (log n-lines 10))))
       (setq swiper--format-spec
             (format "%%-%dd " swiper--width))
       (let ((line-number 0)
-            (advancer (if (and visual-line-mode
-                               (< (buffer-size) 20000))
+            (advancer (if swiper-use-visual-line
                           (lambda (arg) (line-move arg t))
                         #'forward-line))
             candidates)
@@ -234,7 +240,7 @@
           (while (< (point) (point-max))
             (let ((str (concat " " (buffer-substring
                                     (point)
-                                    (if visual-line-mode
+                                    (if swiper-use-visual-line
                                         (save-excursion
                                           (end-of-visual-line)
                                           (point))
@@ -354,7 +360,7 @@ When non-nil, INITIAL-INPUT is the initial search pattern."
         (goto-char (point-min))
         (when (cl-plusp num)
           (goto-char (point-min))
-          (if visual-line-mode
+          (if swiper-use-visual-line
               (line-move (1- num))
             (forward-line (1- num)))
           (if (and (equal ivy-text "")
@@ -423,7 +429,7 @@ BEG and END, when specified, are the point bounds."
   (if (null x)
       (user-error "No candidates")
     (goto-char (point-min))
-    (funcall (if visual-line-mode
+    (funcall (if swiper-use-visual-line
                  #'line-move
                #'forward-line)
              (1- (read (get-text-property 0 'display x))))



reply via email to

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