diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 41b20174be1..0cccc46448b 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -2586,16 +2586,13 @@ minibuffer-completion-help (minibuffer-completion-base (substring string 0 base-size)) (base-prefix (buffer-substring (minibuffer--completion-prompt-end) (+ start base-size))) - (base-suffix - (if (or (eq (alist-get 'category (cdr md)) 'file) - completion-in-region-mode-predicate) - (buffer-substring - (save-excursion - (if completion-in-region-mode-predicate - (point) - (or (search-forward "/" nil t) (point-max)))) - (point-max)) - "")) + (base-suffix (let ((suffix (buffer-substring (point) end))) + (substring + suffix + (cdr (completion-boundaries (buffer-substring start (point)) + minibuffer-completion-table + minibuffer-completion-predicate + suffix))))) (all-md (completion--metadata (buffer-substring-no-properties start (point)) base-size md @@ -2697,7 +2694,11 @@ minibuffer-completion-help (delete-minibuffer-contents) (insert start choice) ;; Keep point after completion before suffix - (save-excursion (insert end))) + (save-excursion (insert + (completion--merge-suffix + choice + (1- (length choice)) + end)))) (unless (or (zerop (length prefix)) (equal prefix (buffer-substring-no-properties