branch: externals/ivy-posframe commit 8d18644d0320f6c009ec7e1a96e88e8266a6d1c8 Author: Feng Shu <tuma...@163.com> Commit: Feng Shu <tuma...@163.com>
Revert "Revert "Simplify ivy-postframe-avy"" This reverts commit f6f07cf34feb4a7389386db4a617b04c5e4fa9b1. --- ivy-posframe.el | 49 +++++-------------------------------------------- 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/ivy-posframe.el b/ivy-posframe.el index 18a31e4..3736df4 100644 --- a/ivy-posframe.el +++ b/ivy-posframe.el @@ -207,7 +207,7 @@ This variable is useful for `ivy-posframe-read-action' .") (if (not (ivy-posframe-workable-p)) (ivy-display-function-fallback str) (setq ivy-posframe--display-p t) - (with-selected-window (ivy--get-window ivy-last) + (with-ivy-window (posframe-show ivy-posframe-buffer :font ivy-posframe-font @@ -318,13 +318,6 @@ 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))))) - (defun ivy-posframe--window () "Return the posframe window displaying `ivy-posframe-buffer'." (frame-selected-window @@ -333,46 +326,14 @@ selection, non-nil otherwise." (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) - (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)) - ;; 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) - (window (ivy-posframe--window)) - 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)))) + (let ((avy-pre-action #'ignore)) + (with-selected-window (ivy-posframe--window) + (ivy-avy)))) (declare-function avy--make-backgrounds "avy") (declare-function avy-window-list "avy")