From d121e4e40ed40f2acadfca456f83a1096f17b645 Mon Sep 17 00:00:00 2001 From: Akib Azmain Turja Date: Mon, 27 Jun 2022 00:43:51 +0600 Subject: [PATCH] Highlight whole line (candidate) on hover --- corfu-mouse.el | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/corfu-mouse.el b/corfu-mouse.el index 7eb8ca9..75ef208 100644 --- a/corfu-mouse.el +++ b/corfu-mouse.el @@ -67,18 +67,25 @@ map)) (defun corfu-mouse--format-candidates (fcands) - "Format candidatesq. + "Format candidates. FCANDS is the return value of `corfu--format-candidates'." - (let ((index corfu--scroll)) - (dolist (cand (caddr fcands)) - (add-text-properties 0 (length cand) - `(mouse-face - corfu-mouse - keymap - ,(corfu-mouse--candidate-map index)) - cand) - (setq index (1+ index))) + (let ((index corfu--scroll) + (cands (caddr fcands))) + (while cands + (let ((line (car cands))) + (setq line (concat line (make-string (- (cadr fcands) + (string-width line)) + ? ))) + (add-text-properties 0 (length line) + `(mouse-face + corfu-mouse + keymap + ,(corfu-mouse--candidate-map index)) + line) + (setcar cands line) + (setq cands (cdr cands)))) + (setq index (1+ index)) fcands)) (defun corfu-mouse--scroll-up (n)