1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-09 09:16:02 -08:00

Fix bug#50063 when using icomplete-fido-kill with C-x p p

C-x p p utilizes a completion table "category" which is 'project-file'
icomplete-fido-kill only functioned for 'buffer' and 'file', and
failed with a non-informative message when something else was used.

* lisp/icomplete.el (icomplete-fido-kill): Support 'project-file'
class.  Use cl-case, instead of pcase.
This commit is contained in:
João Távora 2021-08-15 09:12:23 +01:00
parent 3572613550
commit e6f3a4dc6c

View file

@ -298,18 +298,21 @@ require user confirmation."
(call-interactively 'kill-line)
(let* ((all (completion-all-sorted-completions))
(thing (car all))
(cat (icomplete--category))
(action
(pcase (icomplete--category)
(`buffer
(cl-case cat
(buffer
(lambda ()
(when (yes-or-no-p (concat "Kill buffer " thing "? "))
(kill-buffer thing))))
(`file
((project-file file)
(lambda ()
(let* ((dir (file-name-directory (icomplete--field-string)))
(path (expand-file-name thing dir)))
(when (yes-or-no-p (concat "Delete file " path "? "))
(delete-file path) t)))))))
(delete-file path) t))))
(t
(error "Sorry, don't know how to kill things for `%s'" cat)))))
(when (let (;; Allow `yes-or-no-p' to work and don't let it
;; `icomplete-exhibit' anything.
(enable-recursive-minibuffers t)