diff --git a/elements/core/tentacles/entropy-emacs-ivy.el b/elements/core/tentacles/entropy-emacs-ivy.el index 2fd060ba..9cad045a 100644 --- a/elements/core/tentacles/entropy-emacs-ivy.el +++ b/elements/core/tentacles/entropy-emacs-ivy.el @@ -565,7 +565,11 @@ upstream and may be make risky follow the ivy updates. (funcall symname-func this-caller)) ))) (progn - (user-error "Ivy quit for caller '%s'" this-caller))))) + (if (functionp entropy/emacs-ivy-dispatch-caller-done-message-func) + (unwind-protect + (user-error (funcall entropy/emacs-ivy-dispatch-caller-done-message-func)) + (setq entropy/emacs-ivy-dispatch-caller-done-message-func nil)) + (user-error "Ivy quit for caller '%s'" this-caller)))))) (advice-add 'ivy-read :after #'entropy/emacs-ivy--ivy-read-quit-after-dispatch-actions) ;; **** inhibit double tab trigger diff --git a/elements/core/tentacles/entropy-emacs-popwin.el b/elements/core/tentacles/entropy-emacs-popwin.el index e9c77a39..11b580a3 100644 --- a/elements/core/tentacles/entropy-emacs-popwin.el +++ b/elements/core/tentacles/entropy-emacs-popwin.el @@ -631,6 +631,17 @@ specification." (t (let* ((buff-name (completing-read prompt table))) (funcall action buff-name)))))) + (when (eq entropy/emacs-command-completion-use-style 'ivy) + (ivy-add-actions + 'entropy/emacs-popwin-shackle-popup-buffer + `(("k" + ,(lambda (buffer) (interactive) + (setq entropy/emacs-ivy-dispatch-caller-done-message-func + 'current-message) + (entropy/emacs-message-simple-progress-message + (format "Killing buffer %S" buffer) + (kill-buffer buffer))) + "kill buffer")))) (defun entropy/emacs-popwin-shackle-popup-find-file-action (file) (let* ((buff-name (buffer-name (find-file-noselect file))) diff --git a/elements/core/wasteland/var-binds/entropy-emacs-defvar.el b/elements/core/wasteland/var-binds/entropy-emacs-defvar.el index 1c4785b8..481f59ba 100644 --- a/elements/core/wasteland/var-binds/entropy-emacs-defvar.el +++ b/elements/core/wasteland/var-binds/entropy-emacs-defvar.el @@ -2426,6 +2426,14 @@ not dynamically change their regexp builder from ;; filenames or CJK missed filenames. (ivy--regex-plus str))) +(defvar entropy/emacs-ivy-dispatch-caller-done-message-func nil + "A function which should return a message string used to display +after a ivy dispatcher action invoked done. + +This variable exists since eemacs hacked ivy-read, on where the +`current-message' maybe overridden by the eemacs's ivy-read's +quit action after a dispatcher action ran done.") + ;; ** operation refer ;; *** Read only suggestion