branch: master commit c4acef92c36d2a9874b815e59c7e1f30c6b0e669 Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
swiper.el: Remove the helm bits They are now in swiper-helm.el. Available for install separately from MELPA. --- swiper.el | 159 +------------------------------------------------------------ 1 files changed, 2 insertions(+), 157 deletions(-) diff --git a/swiper.el b/swiper.el index 906d1e4..bd88a51 100644 --- a/swiper.el +++ b/swiper.el @@ -29,7 +29,7 @@ ;; candidates. The search regex can be split into groups with a ;; space. Each group is highlighted with a different face. ;; -;; The overview back end can be either `helm' or `ivy'. +;; The overview back end is `ivy'. ;; ;; It can double as a quick `regex-builder', although only single ;; lines will be matched. @@ -42,12 +42,6 @@ :group 'matching :prefix "swiper-") -(defcustom swiper-completion-method 'ivy - "Method to select a candidate from a list of strings." - :type '(choice - (const :tag "Helm" helm) - (const :tag "Ivy" ivy))) - (defface swiper-match-face-1 '((t (:inherit isearch-lazy-highlight-face))) "Face for `swiper' matches.") @@ -109,13 +103,6 @@ (zerop (forward-line 1))) (nreverse candidates)))))) -(defvar swiper-helm-keymap - (let ((map (make-sparse-keymap))) - (define-key map (kbd "C-s") 'helm-next-line) - (define-key map (kbd "C-r") 'helm-previous-line) - map) - "Allows you to go to next and previous hit isearch-style.") - (defvar swiper--opoint 1 "The point when `swiper' starts.") @@ -125,10 +112,7 @@ When non-nil, INITIAL-INPUT is the initial search pattern." (interactive) (setq swiper--opoint (point)) - (if (and (eq swiper-completion-method 'helm) - (featurep 'helm)) - (swiper--helm initial-input) - (swiper--ivy initial-input))) + (swiper--ivy initial-input)) (defun swiper--init () "Perform initialization common to both completion methods." @@ -166,59 +150,6 @@ When non-nil, INITIAL-INPUT is the initial search pattern." (goto-char swiper--opoint) (swiper--action res ivy-text))))) -(defvar helm-candidate-number-limit) -(defvar helm-display-function) -(defvar helm-map) -(defvar helm-input) -(declare-function helm "ext:helm") -(declare-function helm-persistent-action-display-window "ext:helm") -(declare-function helm-window "ext:helm") -(declare-function helm-next-line "ext:helm") - -(defun swiper--helm (&optional initial-input) - "`isearch' with an overview using `helm'. -When non-nil, INITIAL-INPUT is the initial search pattern." - (interactive) - (require 'helm) - (require 'helm-match-plugin) - (swiper--init) - (unwind-protect - (let ((helm-display-function - (lambda (buf) - (when (one-window-p) - (split-window-vertically)) - (other-window 1) - (switch-to-buffer buf))) - helm-candidate-number-limit) - (helm :sources - `((name . ,(buffer-name)) - (init . (lambda () - (add-hook 'helm-move-selection-after-hook - #'swiper--update-sel) - (add-hook 'helm-update-hook - #'swiper--update-input-helm) - (add-hook 'helm-after-update-hook - #'swiper--reanchor))) - (match-strict . (lambda (x) - (ignore-errors - (string-match (ivy--regex helm-input) x)))) - (candidates . ,(swiper--candidates)) - (filtered-candidate-transformer - helm-fuzzy-highlight-matches) - (action . swiper--action-helm)) - :keymap (make-composed-keymap - swiper-helm-keymap - helm-map) - :input initial-input - :preselect - (format "^%d " swiper--anchor) - :buffer "*swiper*")) - ;; cleanup - (remove-hook 'helm-move-selection-after-hook #'swiper--update-sel) - (remove-hook 'helm-update-hook #'swiper--update-input-helm) - (remove-hook 'helm-after-update-hook #'swiper--reanchor) - (swiper--cleanup))) - (defun swiper--ensure-visible () "Remove overlays hiding point." (let ((overlays (overlays-at (point))) @@ -245,18 +176,6 @@ When non-nil, INITIAL-INPUT is the initial search pattern." (defvar swiper--len 0 "The last length of input for which an anchoring was made.") -(defun swiper--update-input-helm () - "Update selection." - (swiper--cleanup) - (with-selected-window swiper--window - (swiper--add-overlays - (ivy--regex helm-input) - (window-start swiper--window) - (window-end swiper--window t))) - (when (/= (length helm-input) swiper--len) - (setq swiper--len (length helm-input)) - (swiper--reanchor))) - (defun swiper--update-input-ivy () "Called when `ivy' input is updated." (swiper--cleanup) @@ -313,80 +232,6 @@ When non-nil, INITIAL-INPUT is the initial search pattern." (overlay-put overlay 'priority i))) (cl-incf i))))))) -(defun swiper--binary (beg end) - "Find anchor between BEG and END." - (if (<= (- end beg) 10) - (let ((min 1000) - n - ln - d) - (goto-char (point-min)) - (forward-line (1- beg)) - (while (< beg end) - (beginning-of-line) - (setq n (read (current-buffer))) - (when (< (setq d (abs (- n swiper--anchor))) min) - (setq min d) - (setq ln beg)) - (cl-incf beg) - (forward-line 1)) - (goto-char (point-min)) - (when ln - (forward-line (1- ln)))) - (let ((mid (+ beg (/ (- end beg) 2)))) - (goto-char (point-min)) - (forward-line mid) - (beginning-of-line) - (let ((n (read (current-buffer)))) - (if (> n swiper--anchor) - (swiper--binary beg mid) - (swiper--binary mid end)))))) - -(defun swiper--update-sel () - "Update selection." - (let* ((re (ivy--regex helm-input)) - (str (buffer-substring-no-properties - (line-beginning-position) - (line-end-position))) - (num (if (string-match "^[0-9]+" str) - (string-to-number (match-string 0 str)) - 0)) - pt) - (when (> (length re) 0) - (with-selected-window swiper--window - (goto-char (point-min)) - (forward-line (1- num)) - (when (re-search-forward re (point-max) t) - (setq pt (match-beginning 0)))) - (when pt - (with-selected-window - (helm-persistent-action-display-window) - (goto-char pt) - (recenter) - (swiper--update-input-helm)))) - (with-selected-window swiper--window - (let ((ov (make-overlay - (line-beginning-position) - (1+ (line-end-position))))) - (overlay-put ov 'face 'swiper-line-face) - (push ov swiper--overlays))))) - -(defun swiper--reanchor () - "Move to a valid match closest to `swiper--anchor'." - (with-selected-window (helm-window) - (goto-char (point-min)) - (if (re-search-forward (format "^%d " swiper--anchor) nil t) - nil - (forward-line 1) - (swiper--binary 2 (1+ (count-lines (point) (point-max))))) - (when (> (count-lines (point-min) (point-max)) 1) - (forward-line -1) - (helm-next-line 1)))) - -(defun swiper--action-helm (x) - "Goto line X." - (swiper--action x helm-input)) - (defun swiper--action (x input) "Goto line X and search for INPUT." (if (null x)