summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2022-11-21 22:03:43 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2022-11-21 22:03:43 +0100
commit9e854d2a979445b11d6454d440bb886ebfd8ff0a (patch)
tree1bfd2ecf45ef43f23e4ec97d95d7244891b2bfab
parent4bd40f82f112f6ad510cd3f81afe2f0db4fa2fa0 (diff)
corfu-popupinfo: Do not setup keymap if completion-in-region-mode disabled
Fix #254
-rw-r--r--extensions/corfu-popupinfo.el47
1 files changed, 24 insertions, 23 deletions
diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el
index 3890f45..6e5aa33 100644
--- a/extensions/corfu-popupinfo.el
+++ b/extensions/corfu-popupinfo.el
@@ -434,29 +434,30 @@ not be displayed until this command is called again, even if
(defun corfu-popupinfo--exhibit (&rest _)
"Update the info popup automatically."
- (add-to-list 'minor-mode-overriding-map-alist
- `(,#'corfu-popupinfo-mode . ,corfu-popupinfo-map))
- (if (and (>= corfu--index 0) (corfu-popupinfo--visible-p corfu--frame))
- (when-let* ((delay (if (consp corfu-popupinfo-delay)
- (funcall (if (corfu-popupinfo--visible-p) #'cdr #'car)
- corfu-popupinfo-delay)
- corfu-popupinfo-delay))
- (corfu-popupinfo--toggle))
- (when corfu-popupinfo--timer
- (cancel-timer corfu-popupinfo--timer)
- (setq corfu-popupinfo--timer nil))
- (let ((candidate (nth corfu--index corfu--candidates)))
- (if (or (eq delay t) (<= delay 0)
- (equal candidate corfu-popupinfo--candidate))
- (corfu-popupinfo--show candidate)
- (cond
- (corfu-popupinfo-hide
- (corfu-popupinfo--hide))
- (corfu-popupinfo--candidate
- (corfu-popupinfo--show corfu-popupinfo--candidate)))
- (setq corfu-popupinfo--timer
- (run-at-time delay nil #'corfu-popupinfo--show candidate)))))
- (corfu-popupinfo--hide)))
+ (when completion-in-region-mode
+ (setf (alist-get #'corfu-popupinfo-mode minor-mode-overriding-map-alist)
+ corfu-popupinfo-map)
+ (if (and (>= corfu--index 0) (corfu-popupinfo--visible-p corfu--frame))
+ (when-let* ((delay (if (consp corfu-popupinfo-delay)
+ (funcall (if (corfu-popupinfo--visible-p) #'cdr #'car)
+ corfu-popupinfo-delay)
+ corfu-popupinfo-delay))
+ (corfu-popupinfo--toggle))
+ (when corfu-popupinfo--timer
+ (cancel-timer corfu-popupinfo--timer)
+ (setq corfu-popupinfo--timer nil))
+ (let ((candidate (nth corfu--index corfu--candidates)))
+ (if (or (eq delay t) (<= delay 0)
+ (equal candidate corfu-popupinfo--candidate))
+ (corfu-popupinfo--show candidate)
+ (cond
+ (corfu-popupinfo-hide
+ (corfu-popupinfo--hide))
+ (corfu-popupinfo--candidate
+ (corfu-popupinfo--show corfu-popupinfo--candidate)))
+ (setq corfu-popupinfo--timer
+ (run-at-time delay nil #'corfu-popupinfo--show candidate)))))
+ (corfu-popupinfo--hide))))
(defun corfu-popupinfo--teardown ()
"Teardown the info popup state."