[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ivy-posframe 7544bb6 049/195: Implement ivy-posframe-av
From: |
Feng Shu |
Subject: |
[elpa] externals/ivy-posframe 7544bb6 049/195: Implement ivy-posframe-avy |
Date: |
Sat, 3 Oct 2020 07:11:43 -0400 (EDT) |
branch: externals/ivy-posframe
commit 7544bb661bfb6543a0673973629fd917b49e5d74
Author: Fox Kiester <noct@posteo.net>
Commit: Fox Kiester <noct@posteo.net>
Implement ivy-posframe-avy
Fixes #6.
---
ivy-posframe.el | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 48 insertions(+), 1 deletion(-)
diff --git a/ivy-posframe.el b/ivy-posframe.el
index ce7c97f..816a497 100644
--- a/ivy-posframe.el
+++ b/ivy-posframe.el
@@ -287,10 +287,57 @@ selection, non-nil otherwise."
(setcar actions (1+ action-idx))
(ivy-set-action actions)))))))
+(defun ivy-posframe--avy-action (pt)
+ "Finish ivy session with the candidate at PT."
+ (with-current-buffer ivy-posframe-buffer
+ (ivy--done
+ (substring-no-properties
+ (nth (- (line-number-at-pos pt) 2) ivy--old-cands)))))
+
+(defvar avy-all-windows)
+(defvar avy-keys)
+(defvar avy-keys-alist)
+(defvar avy-style)
+(defvar avy-styles-alist)
+(defvar avy-action)
+(declare-function avy--process "avy")
+(declare-function avy--style-fn "avy")
(defun ivy-posframe-avy ()
"Jump to one of the current ivy candidates."
(interactive)
- (message "ivy-posframe: ivy-avy is not supported at the moment."))
+ (unless (require 'avy nil 'noerror)
+ (error "Package avy isn't installed"))
+ (unless (boundp 'avy-pre-action)
+ (error "A newer version of avy is required for this command"))
+ (let* ((avy-all-windows nil)
+ (avy-keys (or (cdr (assq 'ivy-avy avy-keys-alist))
+ avy-keys))
+ (avy-style (or (cdr (assq 'ivy-avy
+ avy-styles-alist))
+ avy-style))
+ (window (frame-selected-window
+ (buffer-local-value 'posframe--frame
+ (get-buffer ivy-posframe-buffer))))
+ ;; prevent default pre action, which calls
+ ;; `select-frame-set-input-focus', deselecting the minibuffer and
+ ;; causing `ivy-posframe-cleanup' to run prematurely
+ (avy-pre-action #'ignore)
+ candidates)
+ (with-current-buffer ivy-posframe-buffer
+ (save-excursion
+ (save-restriction
+ (narrow-to-region
+ (window-start window)
+ (window-end window))
+ (goto-char (point-min))
+ (forward-line)
+ (while (< (point) (point-max))
+ (push (cons (point) window) candidates)
+ (forward-line)))))
+ (setq avy-action #'ivy-posframe--avy-action)
+ (avy--process
+ (nreverse candidates)
+ (avy--style-fn avy-style))))
(defun ivy-posframe--minibuffer-setup (orig-func)
"Advice function of `ivy--minibuffer-setup'."
- [elpa] externals/ivy-posframe e1624e7 027/195: ivy-posframe-display: style -> style-or-poshandler, (continued)
- [elpa] externals/ivy-posframe e1624e7 027/195: ivy-posframe-display: style -> style-or-poshandler, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 5312e07 031/195: Add ivy-posframe-parameters, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 8f62984 033/195: Add ivy-posframe-read-action and ivy-posframe-dispatching-done, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 26e3a64 034/195: ivy-posframe: add ivy-posframe-avy, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 0989e42 039/195: Show cursor's position, fix #9, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe b37e713 041/195: Merge pull request #10 from drrlvn/patch-1, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 15d9a9e 043/195: Revert "Set ivy-posframe-cursor as mulitcursor", Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe b92aaa1 046/195: Merge pull request #13 from samrayleung/feature-add-variable, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 8be3311 047/195: ivy-posframe do not support mouse click, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 3d98dbd 048/195: Add ivy-posframe-hide-minibuffer feature, fix #12, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 7544bb6 049/195: Implement ivy-posframe-avy,
Feng Shu <=
- [elpa] externals/ivy-posframe b217e00 051/195: Use remaps for all keybindings, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 9982c6d 052/195: Merge pull request #17 from noctuid/ivy-avy, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 187d14b 053/195: ivy-posframe.el (ivy-posframe--display): Simplify, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 7ea96ce 055/195: Merge pull request #19 from abo-abo/master, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 52c8209 057/195: Merge pull request #20 from tumashu/revert-19-master, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 19f1382 059/195: update README, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 05432ef 063/195: fallback width = frame-width * 0.618, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 7787514 064/195: ivy-posframe-hide-minibuffer default is t, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 0fdb1b6 066/195: Update snapshots, Feng Shu, 2020/10/03
- [elpa] externals/ivy-posframe 96c2e83 067/195: Update README, Feng Shu, 2020/10/03