[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master b3cd0d5 016/272: ivy.el (ivy-mode): Set completing-read-fu
From: |
Oleh Krehel |
Subject: |
[elpa] master b3cd0d5 016/272: ivy.el (ivy-mode): Set completing-read-function |
Date: |
Mon, 25 Apr 2016 10:13:14 +0000 |
branch: master
commit b3cd0d5ccbb98eb06c5b6638d9e08e59b2189b99
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
ivy.el (ivy-mode): Set completing-read-function
* ivy.el (ivy-completion-beg): Rename from `counsel-completion-beg'.
(ivy-completion-end): Rename from `counsel-completion-end'.
(ivy-completion-in-region-action): Rename from `counsel--el-action'.
(ivy-completion-in-region): New defun.
(ivy-mode): Set `completing-read-function' to 'ivy-completion-in-region.
* counsel.el: Update due to renames.
Fixes #331
---
counsel.el | 84 +++++++++++++++++++++++-------------------------------------
ivy.el | 43 +++++++++++++++++++++++++++++--
2 files changed, 73 insertions(+), 54 deletions(-)
diff --git a/counsel.el b/counsel.el
index 69b43a7..227ad7f 100644
--- a/counsel.el
+++ b/counsel.el
@@ -35,12 +35,6 @@
(require 'swiper)
(require 'etags)
-(defvar counsel-completion-beg nil
- "Completion bounds start.")
-
-(defvar counsel-completion-end nil
- "Completion bounds end.")
-
;;;###autoload
(defun counsel-el ()
"Elisp completion at point."
@@ -59,12 +53,12 @@
symbol-names)
(if bnd
(progn
- (setq counsel-completion-beg
+ (setq ivy-completion-beg
(move-marker (make-marker) (car bnd)))
- (setq counsel-completion-end
+ (setq ivy-completion-end
(move-marker (make-marker) (cdr bnd))))
- (setq counsel-completion-beg nil)
- (setq counsel-completion-end nil))
+ (setq ivy-completion-beg nil)
+ (setq ivy-completion-end nil))
(if (string= str "")
(mapatoms
(lambda (x)
@@ -80,7 +74,7 @@
(ivy-read "Symbol name: " symbol-names
:predicate (and funp #'functionp)
:initial-input str
- :action #'counsel--el-action)))
+ :action #'ivy-completion-in-region-action)))
(declare-function slime-symbol-start-pos "ext:slime")
(declare-function slime-symbol-end-pos "ext:slime")
@@ -90,27 +84,13 @@
(defun counsel-cl ()
"Common Lisp completion at point."
(interactive)
- (setq counsel-completion-beg (slime-symbol-start-pos))
- (setq counsel-completion-end (slime-symbol-end-pos))
+ (setq ivy-completion-beg (slime-symbol-start-pos))
+ (setq ivy-completion-end (slime-symbol-end-pos))
(ivy-read "Symbol name: "
(car (slime-contextual-completions
- counsel-completion-beg
- counsel-completion-end))
- :action #'counsel--el-action))
-
-(defun counsel--el-action (symbol)
- "Insert SYMBOL, erasing the previous one."
- (when (stringp symbol)
- (with-ivy-window
- (when counsel-completion-beg
- (delete-region
- counsel-completion-beg
- counsel-completion-end))
- (setq counsel-completion-beg
- (move-marker (make-marker) (point)))
- (insert symbol)
- (setq counsel-completion-end
- (move-marker (make-marker) (point))))))
+ ivy-completion-beg
+ ivy-completion-end))
+ :action #'ivy-completion-in-region-action))
(declare-function deferred:sync! "ext:deferred")
(declare-function jedi:complete-request "ext:jedi-core")
@@ -122,10 +102,10 @@
(let ((bnd (bounds-of-thing-at-point 'symbol)))
(if bnd
(progn
- (setq counsel-completion-beg (car bnd))
- (setq counsel-completion-end (cdr bnd)))
- (setq counsel-completion-beg nil)
- (setq counsel-completion-end nil)))
+ (setq ivy-completion-beg (car bnd))
+ (setq ivy-completion-end (cdr bnd)))
+ (setq ivy-completion-beg nil)
+ (setq ivy-completion-end nil)))
(deferred:sync!
(jedi:complete-request))
(ivy-read "Symbol name: " (jedi:ac-direct-matches)
@@ -135,18 +115,18 @@
"Insert SYMBOL, erasing the previous one."
(when (stringp symbol)
(with-ivy-window
- (when counsel-completion-beg
+ (when ivy-completion-beg
(delete-region
- counsel-completion-beg
- counsel-completion-end))
- (setq counsel-completion-beg
+ ivy-completion-beg
+ ivy-completion-end))
+ (setq ivy-completion-beg
(move-marker (make-marker) (point)))
(insert symbol)
- (setq counsel-completion-end
+ (setq ivy-completion-end
(move-marker (make-marker) (point)))
(when (equal (get-text-property 0 'symbol symbol) "f")
(insert "()")
- (setq counsel-completion-end
+ (setq ivy-completion-end
(move-marker (make-marker) (point)))
(backward-char 1)))))
@@ -304,8 +284,8 @@
"Insert a Unicode character at point."
(interactive)
(let ((minibuffer-allow-text-properties t))
- (setq counsel-completion-beg (point))
- (setq counsel-completion-end (point))
+ (setq ivy-completion-beg (point))
+ (setq ivy-completion-end (point))
(ivy-read "Unicode name: "
(mapcar (lambda (x)
(propertize
@@ -314,10 +294,10 @@
(ucs-names))
:action (lambda (char)
(with-ivy-window
- (delete-region counsel-completion-beg
counsel-completion-end)
- (setq counsel-completion-beg (point))
+ (delete-region ivy-completion-beg ivy-completion-end)
+ (setq ivy-completion-beg (point))
(insert-char (get-text-property 0 'result char))
- (setq counsel-completion-end (point))))
+ (setq ivy-completion-end (point))))
:history 'counsel-unicode-char-history)))
(declare-function cider-sync-request:complete "ext:cider-client")
@@ -1273,13 +1253,13 @@ INITIAL-INPUT can be given as the initial minibuffer
input."
(interactive)
(if (eq last-command 'yank)
(progn
- (setq counsel-completion-end (point))
- (setq counsel-completion-beg
+ (setq ivy-completion-end (point))
+ (setq ivy-completion-beg
(save-excursion
(search-backward (car kill-ring))
(point))))
- (setq counsel-completion-beg (point))
- (setq counsel-completion-end (point)))
+ (setq ivy-completion-beg (point))
+ (setq ivy-completion-end (point)))
(let ((candidates (cl-remove-if
(lambda (s)
(or (< (length s) 3)
@@ -1306,10 +1286,10 @@ INITIAL-INPUT can be given as the initial minibuffer
input."
(defun counsel-yank-pop-action (s)
"Insert S into the buffer, overwriting the previous yank."
(with-ivy-window
- (delete-region counsel-completion-beg
- counsel-completion-end)
+ (delete-region ivy-completion-beg
+ ivy-completion-end)
(insert (substring-no-properties s))
- (setq counsel-completion-end (point))))
+ (setq ivy-completion-end (point))))
(defvar imenu-auto-rescan)
(declare-function imenu--subalist-p "imenu")
diff --git a/ivy.el b/ivy.el
index 704a71c..feff8d9 100644
--- a/ivy.el
+++ b/ivy.el
@@ -1356,6 +1356,42 @@ INHERIT-INPUT-METHOD is currently ignored."
(cdr sort)
t)))))
+(defvar ivy-completion-beg nil
+ "Completion bounds start.")
+
+(defvar ivy-completion-end nil
+ "Completion bounds end.")
+
+(defun ivy-completion-in-region-action (str)
+ "Insert STR, erasing the previous one.
+The previous string is between `ivy-completion-beg' and `ivy-completion-end'."
+ (when (stringp str)
+ (with-ivy-window
+ (when ivy-completion-beg
+ (delete-region
+ ivy-completion-beg
+ ivy-completion-end))
+ (setq ivy-completion-beg
+ (move-marker (make-marker) (point)))
+ (insert str)
+ (setq ivy-completion-end
+ (move-marker (make-marker) (point))))))
+
+(defun ivy-completion-in-region (start end collection &optional predicate)
+ "An Ivy function suitable for `completion-in-region-function'."
+ (let* ((str (buffer-substring-no-properties start end))
+ (comps (all-completions str collection predicate)))
+ (if (null comps)
+ (message "No matches")
+ (setq ivy-completion-beg start)
+ (setq ivy-completion-end end)
+ (and
+ (ivy-read (format "(%s): " str) comps
+ :predicate predicate
+ :action #'ivy-completion-in-region-action
+ :require-match t)
+ t))))
+
;;;###autoload
(define-minor-mode ivy-mode
"Toggle Ivy mode on or off.
@@ -1373,8 +1409,11 @@ Minibuffer bindings:
:keymap ivy-mode-map
:lighter " ivy"
(if ivy-mode
- (setq completing-read-function 'ivy-completing-read)
- (setq completing-read-function 'completing-read-default)))
+ (progn
+ (setq completing-read-function 'ivy-completing-read)
+ (setq completion-in-region-function 'ivy-completion-in-region))
+ (setq completing-read-function 'completing-read-default)
+ (setq completion-in-region-function 'completion--in-region)))
(defun ivy--preselect-index (preselect candidates)
"Return the index of PRESELECT in CANDIDATES."
- [elpa] master 2ea56ec 027/272: ivy.el (ivy-occur): Fix when ivy--old-re isn't a string, (continued)
- [elpa] master 2ea56ec 027/272: ivy.el (ivy-occur): Fix when ivy--old-re isn't a string, Oleh Krehel, 2016/04/25
- [elpa] master db3e7ff 015/272: Ensure the return result of `ivy-read', Oleh Krehel, 2016/04/25
- [elpa] master e070f4c 022/272: ivy.el (ivy-add-face-text-property): New defun, Oleh Krehel, 2016/04/25
- [elpa] master 89ed4d6 024/272: Improve flx highlighting, Oleh Krehel, 2016/04/25
- [elpa] master 09cb5c9 025/272: ivy: fix ivy--resize-minibuffer-to-fit for small delta, Oleh Krehel, 2016/04/25
- [elpa] master 6051225 020/272: Call ivy-set-actions with t to affect all commands, Oleh Krehel, 2016/04/25
- [elpa] master 12523d0 023/272: Use flx for highlighting fuzzy matches, Oleh Krehel, 2016/04/25
- [elpa] master 1cd501a 029/272: ivy.el (ivy-completion-in-region): Optimize for 1 cand, Oleh Krehel, 2016/04/25
- [elpa] master 0c844c1 030/272: ivy.el (ivy-completion-in-region): Fix for 1 cand, Oleh Krehel, 2016/04/25
- [elpa] master b5dc239 032/272: counsel.el (counsel--async-sentinel): Fix issue with ivy--regex-ignore-order, Oleh Krehel, 2016/04/25
- [elpa] master b3cd0d5 016/272: ivy.el (ivy-mode): Set completing-read-function,
Oleh Krehel <=
- [elpa] master 89ed19e 035/272: ivy.el (ivy--regex-plus): Prettify a bit, Oleh Krehel, 2016/04/25
- [elpa] master 2135752 040/272: counsel.el (counsel--async-filter): Fix up, Oleh Krehel, 2016/04/25
- [elpa] master 426cfcb 028/272: ivy.el (ivy-completion-in-region): Fix a few bugs, Oleh Krehel, 2016/04/25
- [elpa] master a526e86 041/272: Refactor swiper-font-lock-ensure, Oleh Krehel, 2016/04/25
- [elpa] master 0d410d3 047/272: ivy.el (ivy-flx-limit): Configure when flx is used, Oleh Krehel, 2016/04/25
- [elpa] master c210bf6 050/272: counsel.el (counsel-tmm): Fix tmm free variable, Oleh Krehel, 2016/04/25
- [elpa] master bcb81dd 049/272: Fix swiper "backward" search, Oleh Krehel, 2016/04/25
- [elpa] master a1e0063 018/272: ivy.el (ivy--reset-state): Don't null initial-input, Oleh Krehel, 2016/04/25
- [elpa] master fdb21f6 033/272: counsel.el (counsel--async-sentinel): Re-display when no cands, Oleh Krehel, 2016/04/25
- [elpa] master 1365b2b 031/272: Change tramp prompt from "Find File: " to "address@hidden: ", Oleh Krehel, 2016/04/25