Mercurial > emacs
comparison lisp/simple.el @ 45607:98941f178aa2
(choose-completion-string-functions): New special hook.
(choose-completion-string1): Renamed from choose-completion-string.
(choose-completion-string): Run choose-completion-string-functions
until success, and only call choose-completion-string1 if it fails.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sat, 01 Jun 2002 00:00:29 +0000 |
parents | 0d38cc3754dc |
children | e1b3f85895a5 |
comparison
equal
deleted
inserted
replaced
45606:58b152d88dbd | 45607:98941f178aa2 |
---|---|
3775 (not (string= tail (substring string 0 len))))) | 3775 (not (string= tail (substring string 0 len))))) |
3776 (setq len (1- len)) | 3776 (setq len (1- len)) |
3777 (forward-char 1)) | 3777 (forward-char 1)) |
3778 (delete-char len))) | 3778 (delete-char len))) |
3779 | 3779 |
3780 (defvar choose-completion-string-functions nil | |
3781 "List of functions which may override the standard `choose-completion-string'. | |
3782 Each function in the list is called in turn with arguments CHOICE BUFFER BASE-SIZE | |
3783 like choose-completion-string. If a function in the list returns non-nil, that | |
3784 function is supposed to have inserted the completion in the minibuffer. | |
3785 If all functions in the list return nil, use the default completion selection.") | |
3786 | |
3780 ;; Switch to BUFFER and insert the completion choice CHOICE. | 3787 ;; Switch to BUFFER and insert the completion choice CHOICE. |
3781 ;; BASE-SIZE, if non-nil, says how many characters of BUFFER's text | 3788 ;; BASE-SIZE, if non-nil, says how many characters of BUFFER's text |
3782 ;; to keep. If it is nil, use choose-completion-delete-max-match instead. | 3789 ;; to keep. If it is nil, use choose-completion-delete-max-match instead. |
3783 | 3790 |
3784 ;; If BUFFER is the minibuffer, exit the minibuffer | 3791 ;; If BUFFER is the minibuffer, exit the minibuffer |
3785 ;; unless it is reading a file name and CHOICE is a directory, | 3792 ;; unless it is reading a file name and CHOICE is a directory, |
3786 ;; or completion-no-auto-exit is non-nil. | 3793 ;; or completion-no-auto-exit is non-nil. |
3787 (defun choose-completion-string (choice &optional buffer base-size) | 3794 (defun choose-completion-string (choice &optional buffer base-size) |
3795 (unless (run-hook-with-args-until-success | |
3796 'choose-completion-string-functions choice buffer base-size) | |
3797 (choose-completion-string1 choice buffer base-size))) | |
3798 | |
3799 (defun choose-completion-string1 (choice &optional buffer base-size) | |
3788 (let ((buffer (or buffer completion-reference-buffer)) | 3800 (let ((buffer (or buffer completion-reference-buffer)) |
3789 (mini-p (string-match "\\` \\*Minibuf-[0-9]+\\*\\'" (buffer-name buffer)))) | 3801 (mini-p (string-match "\\` \\*Minibuf-[0-9]+\\*\\'" (buffer-name buffer)))) |
3790 ;; If BUFFER is a minibuffer, barf unless it's the currently | 3802 ;; If BUFFER is a minibuffer, barf unless it's the currently |
3791 ;; active minibuffer. | 3803 ;; active minibuffer. |
3792 (if (and mini-p | 3804 (if (and mini-p |