branch: externals/ivy-posframe commit 3784f593f7260a392f1646e8aeb583cdf23f25d7 Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
ivy-posframe.el (ivy-posframe-avy): Simplify --- ivy-posframe.el | 47 ++++------------------------------------------- 1 file changed, 4 insertions(+), 43 deletions(-) diff --git a/ivy-posframe.el b/ivy-posframe.el index f8675e1..8304c6a 100644 --- a/ivy-posframe.el +++ b/ivy-posframe.el @@ -287,13 +287,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 @@ -302,46 +295,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")