[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 0772929 29/67: Add some rudimentary history handling
From: |
Oleh Krehel |
Subject: |
[elpa] master 0772929 29/67: Add some rudimentary history handling |
Date: |
Sun, 22 Mar 2015 17:33:58 +0000 |
branch: master
commit 0772929421b8ec7480c91e3dbe748c9467bd3e38
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
Add some rudimentary history handling
* ivy.el (ivy-minibuffer-map): Bind "M-n", "M-p", and "C-g".
(ivy-history): New defvar.
(ivy-read): Update.
(ivy--minibuffer-setup): Offer thing-at-point for "M-n".
(ivy--default): New defvar.
Re #16.
---
ivy.el | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/ivy.el b/ivy.el
index ce4a610..47f3568 100644
--- a/ivy.el
+++ b/ivy.el
@@ -52,6 +52,7 @@
;;* User Visible
;;** Keymap
+(require 'delsel)
(defvar ivy-minibuffer-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "C-m") 'ivy-done)
@@ -63,9 +64,18 @@
(define-key map (kbd "DEL") 'ivy-backward-delete-char)
(define-key map (kbd "M-<") 'ivy-beginning-of-buffer)
(define-key map (kbd "M->") 'ivy-end-of-buffer)
+ (define-key map (kbd "M-n") 'next-history-element)
+ (define-key map (kbd "M-p") 'previous-history-element)
+ (define-key map (kbd "C-g") 'minibuffer-keyboard-quit)
map)
"Keymap used in the minibuffer.")
+(defvar ivy-history nil
+ "History list of candidates entered in the minibuffer.
+
+Maximum length of the history list is determined by the value
+of `history-length', which see.")
+
;;** Commands
(defun ivy-done ()
"Exit the minibuffer with the selected candidate."
@@ -104,7 +114,6 @@ On error (read-only), quit without selecting."
(condition-case nil
(backward-delete-char 1)
(error
- (require 'delsel)
(minibuffer-keyboard-quit))))
;;** Entry Point
@@ -122,10 +131,16 @@ If INDEX is non-nil select the corresponding candidate."
(setq ivy--all-candidates collection)
(setq ivy--update-fn update-fn)
(setq ivy-exit nil)
+ (setq ivy--default (or (thing-at-point 'symbol) ""))
(unwind-protect
(minibuffer-with-setup-hook
#'ivy--minibuffer-setup
- (read-from-minibuffer prompt initial-input))
+ (read-from-minibuffer
+ prompt
+ initial-input
+ ivy-minibuffer-map
+ nil
+ 'ivy-history))
(remove-hook 'post-command-hook #'ivy--exhibit)))
(defvar ivy-text ""
@@ -168,6 +183,9 @@ Otherwise, store nil.")
(defun ivy--minibuffer-setup ()
"Setup ivy completion in the minibuffer."
(set (make-local-variable 'completion-show-inline-help) nil)
+ (set (make-local-variable 'minibuffer-default-add-function)
+ (lambda ()
+ (list ivy--default)))
(use-local-map (make-composed-keymap ivy-minibuffer-map
(current-local-map)))
(setq-local max-mini-window-height ivy-height)
@@ -187,6 +205,9 @@ Otherwise, store nil.")
(defvar ivy--current ""
"Current candidate.")
+(defvar ivy--default nil
+ "Default initial input.")
+
(defvar ivy--update-fn nil
"Current function to call when current candidate(s) update.")
- [elpa] master 835208a 20/67: Inherit standard faces by default, (continued)
- [elpa] master 835208a 20/67: Inherit standard faces by default, Oleh Krehel, 2015/03/22
- [elpa] master f148a94 24/67: Fix use of cl-incf, Oleh Krehel, 2015/03/22
- [elpa] master 2ed9ee2 23/67: Require delsel for `minibuffer-keyboard-quit', Oleh Krehel, 2015/03/22
- [elpa] master 1ca1660 22/67: swiper.el: Save position before last search, Oleh Krehel, 2015/03/22
- [elpa] master 02ca7a1 25/67: Add anchoring, Oleh Krehel, 2015/03/22
- [elpa] master b1ac649 26/67: Don't recenter unless necessary, Oleh Krehel, 2015/03/22
- [elpa] master a07c2e4 27/67: swiper.el: Make ivy the default back end, Oleh Krehel, 2015/03/22
- [elpa] master baa9df7 30/67: Truncate candidates to window width in the minibuffer, Oleh Krehel, 2015/03/22
- [elpa] master 7c6d00d 32/67: ivy.el (ivy-read): Return immediately for less than 2 candidates, Oleh Krehel, 2015/03/22
- [elpa] master 315be36 31/67: counsel.el: Add, Oleh Krehel, 2015/03/22
- [elpa] master 0772929 29/67: Add some rudimentary history handling,
Oleh Krehel <=
- [elpa] master 045fb60 28/67: ivy.el (ivy-previous-line): Change to `cl-decf', Oleh Krehel, 2015/03/22
- [elpa] master e1cdb29 37/67: counsel.el: Add Clojure completion at point, Oleh Krehel, 2015/03/22
- [elpa] master 7ff3dd9 35/67: Need to check value of variable, Oleh Krehel, 2015/03/22
- [elpa] master c78cc15 34/67: swiper.el: Clean up overlays better on "C-g", Oleh Krehel, 2015/03/22
- [elpa] master e7b560c 38/67: swiper.el (swiper--opoint): Fix bad defvar, Oleh Krehel, 2015/03/22
- [elpa] master d78caee 33/67: Open invisible overlays using isearch, Oleh Krehel, 2015/03/22
- [elpa] master 8818a01 36/67: swiper.el: Fix error for empty buffer, Oleh Krehel, 2015/03/22
- [elpa] master 984346c 40/67: swiper.el (swiper-font-lock-ensure): Exclude a few modes, Oleh Krehel, 2015/03/22
- [elpa] master cb26121 41/67: ivy.el: Fix ivy-history recording the full text instead of input, Oleh Krehel, 2015/03/22
- [elpa] master de80846 39/67: Work around magit highlighting problem, Oleh Krehel, 2015/03/22