branch: externals/consult commit 9acf9398ce187829f6afe6d33f0891ba1c07cd0d Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
consult--read: Run lookup function in minibuffer When looking up the position in consult--line-match, we rely on the completion-styles. For in-buffer completion (e.g. Corfu/Company) the completion-styles may be changed locally. --- consult.el | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/consult.el b/consult.el index e4a2c96d50..09bf1fd3bc 100644 --- a/consult.el +++ b/consult.el @@ -1417,29 +1417,29 @@ PREVIEW-KEY, STATE, TRANSFORM and CANDIDATE." (lambda () (when-let ((cand (funcall candidate))) (with-selected-window (active-minibuffer-window) - (let ((input (minibuffer-contents-no-properties))) + (let* ((input (minibuffer-contents-no-properties)) + (transformed (funcall transform narrow input cand)) + (new-preview (cons input cand))) (with-selected-window (or (minibuffer-selected-window) (next-window)) - (let ((transformed (funcall transform narrow input cand)) - (new-preview (cons input cand))) - (when-let (debounce (consult--preview-key-debounce preview-key transformed)) - (when timer - (cancel-timer timer) - (setq timer nil)) - (unless (equal last-preview new-preview) - (if (> debounce 0) - (let ((win (selected-window))) - (setq timer - (run-at-time - debounce nil - (lambda () - (when (window-live-p win) - (with-selected-window win - ;; STEP 2: Preview candidate - (funcall state 'preview transformed) - (setq last-preview new-preview))))))) - ;; STEP 2: Preview candidate - (funcall state 'preview transformed) - (setq last-preview new-preview))))))))))) + (when-let (debounce (consult--preview-key-debounce preview-key transformed)) + (when timer + (cancel-timer timer) + (setq timer nil)) + (unless (equal last-preview new-preview) + (if (> debounce 0) + (let ((win (selected-window))) + (setq timer + (run-at-time + debounce nil + (lambda () + (when (window-live-p win) + (with-selected-window win + ;; STEP 2: Preview candidate + (funcall state 'preview transformed) + (setq last-preview new-preview))))))) + ;; STEP 2: Preview candidate + (funcall state 'preview transformed) + (setq last-preview new-preview)))))))))) (consult--append-local-post-command-hook (lambda () (setq input (minibuffer-contents-no-properties) @@ -2881,7 +2881,9 @@ INPUT is the input string entered by the user." ;; Marker can be dead, therefore ignore errors. Create a new marker instead of an integer, ;; since the location may be in another buffer, e.g., for `consult-line-all'. (ignore-errors - (if (or (not (markerp pos)) (eq (marker-buffer pos) (current-buffer))) + (if (or (not (markerp pos)) + (eq (marker-buffer pos) + (window-buffer (or (minibuffer-selected-window) (next-window))))) (+ pos end) ;; Only create a new marker when jumping across buffers, to avoid ;; creating unnecessary markers, when scrolling through candidates.