[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/mct 92680c1091 05/64: completion--done: Attempt to tear
From: |
ELPA Syncer |
Subject: |
[elpa] externals/mct 92680c1091 05/64: completion--done: Attempt to teardown completion in region properly |
Date: |
Thu, 30 Dec 2021 23:57:49 -0500 (EST) |
branch: externals/mct
commit 92680c1091edb8f069481c138d97fd0b91f77828
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Protesilaos Stavrou <info@protesilaos.com>
completion--done: Attempt to teardown completion in region properly
---
mct.el | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/mct.el b/mct.el
index 91e2a48d4a..c9a50e536f 100644
--- a/mct.el
+++ b/mct.el
@@ -1140,15 +1140,17 @@ Meant to be added to `after-change-functions'."
;;;;;; Minor mode specification
-;; FIXME 2021-12-03: We need a predicate here for when we are active.
-;; It cannot be `completion-in-region-mode'.
(defun mct--region-setup-completion-in-region ()
"Set up Mct for `completion-in-region'."
- ;; NOTE: Ignore the predicate in order to support orderless style.
- ;; TODO: This override should be guarded by a customizable variable,
- ;; since it is intrusive. See also `corfu-quit-at-boundary'.
- (setq completion-in-region-mode--predicate (lambda () t))
- (mct--region-live-update))
+ (if completion-in-region-mode
+ (progn
+ ;; NOTE: Ignore the predicate in order to support orderless style.
+ ;; TODO: This override should be guarded by a customizable variable,
+ ;; since it is intrusive. See also `corfu-quit-at-boundary'.
+ (setq completion-in-region-mode--predicate (lambda () t))
+ (mct--region-live-update))
+ ;; Teardown
+ (remove-hook 'after-change-functions #'mct--region-live-completions t)))
;; FIXME 2021-12-03: When using a flex style followed by tab, the
;; completion-in-region seems to remain active as the echo area has a
@@ -1178,6 +1180,7 @@ Meant to be added to `after-change-functions'."
:global t
(if mct-region-mode
(progn
+ (advice-add #'completion--done :around #'mct--region-completion-done)
(add-hook 'completion-list-mode-hook #'mct--setup-completion-list)
(add-hook 'completion-in-region-mode-hook
#'mct--region-setup-completion-in-region)
(advice-add #'display-completion-list :around
#'mct--display-completion-list-advice)
@@ -1185,6 +1188,7 @@ Meant to be added to `after-change-functions'."
(let ((map completion-in-region-mode-map))
(define-key map (kbd "C-n") #'mct-switch-to-completions-top)
(define-key map (kbd "C-p") #'mct-switch-to-completions-bottom)))
+ (advice-remove #'completion--done #'mct--region-completion-done)
(remove-hook 'completion-list-mode-hook #'mct--setup-completion-list)
(remove-hook 'completion-in-region-mode-hook
#'mct--region-setup-completion-in-region)
(advice-remove #'display-completion-list
#'mct--display-completion-list-advice)
@@ -1192,5 +1196,9 @@ Meant to be added to `after-change-functions'."
(define-key map (kbd "C-n") nil)
(define-key map (kbd "C-p") nil))))
+(defun mct--completion-done (&rest app)
+ (apply app)
+ (completion-in-region-mode -1))
+
(provide 'mct)
;;; mct.el ends here
- [elpa] externals/mct updated (6279fa3e7d -> 9e81e4425a), ELPA Syncer, 2021/12/30
- [elpa] externals/mct cf99cc1f5c 12/64: Define placeholder predicate for in-region mode, ELPA Syncer, 2021/12/30
- [elpa] externals/mct 92680c1091 05/64: completion--done: Attempt to teardown completion in region properly,
ELPA Syncer <=
- [elpa] externals/mct 6cd3b20a83 09/64: Add TODO on binding TAB in region, ELPA Syncer, 2021/12/30
- [elpa] externals/mct 555b481fe0 03/64: First steps towards Orderless support, ELPA Syncer, 2021/12/30
- [elpa] externals/mct 5ad44174c8 16/64: Introduce mct-region keymap for completions (WIP), ELPA Syncer, 2021/12/30
- [elpa] externals/mct 788aeafb04 19/64: Rename the minibuffer mode, ELPA Syncer, 2021/12/30
- [elpa] externals/mct 6222731289 10/64: Add new FIXME to exit region completion cleanly, ELPA Syncer, 2021/12/30
- [elpa] externals/mct c79f8c86c9 07/64: Take note of more issues with completion-in-region, ELPA Syncer, 2021/12/30
- [elpa] externals/mct 0d7d64d79a 15/64: Add in-region version of choose-completion, ELPA Syncer, 2021/12/30
- [elpa] externals/mct adeddd2dfe 14/64: Write helper for "choose completion" routine, ELPA Syncer, 2021/12/30
- [elpa] externals/mct 298a83cfc5 17/64: Respin the mct setup for in-region scenario (WIP), ELPA Syncer, 2021/12/30
- [elpa] externals/mct 0362ca4bf1 34/64: Rename symbol for consistency, ELPA Syncer, 2021/12/30