diff options
| author | João Távora | 2019-02-04 16:00:15 +0000 |
|---|---|---|
| committer | João Távora | 2019-02-04 16:06:52 +0000 |
| commit | 0943c81ecd08252e521e841e2614a1516dc64c9e (patch) | |
| tree | 2c58f7565f83dba4f540bb9fe24e12ce71081b33 | |
| parent | 8c9b9144cfdee7d40886044964e4b10ca1690815 (diff) | |
| download | emacs-scratch/some-more-icomplete-hacks.tar.gz emacs-scratch/some-more-icomplete-hacks.zip | |
Add new icomplete-force-complete-and-exit-unless-directory commandscratch/some-more-icomplete-hacks
Useful if you want icomplete to behave a little more like Ido.
(define-key icomplete-minibuffer-map (kbd "RET")
'icomplete-force-complete-and-exit-unless-directory)
* lisp/icomplete.el
(icomplete-force-complete-and-exit-unless-directory): New command.
| -rw-r--r-- | lisp/icomplete.el | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 102ebb9526f..67c8ef661f2 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el | |||
| @@ -167,6 +167,19 @@ the default otherwise." | |||
| 167 | (minibuffer-force-complete-and-exit) | 167 | (minibuffer-force-complete-and-exit) |
| 168 | (minibuffer-complete-and-exit))) | 168 | (minibuffer-complete-and-exit))) |
| 169 | 169 | ||
| 170 | (defun icomplete-force-complete-and-exit-unless-directory () | ||
| 171 | "Complete minibuffer, don't exit if completing a directory." | ||
| 172 | (interactive) | ||
| 173 | (minibuffer-force-complete nil nil 'dont-cycle) | ||
| 174 | (let* ((meta (cdr (funcall minibuffer-completion-table | ||
| 175 | nil nil 'metadata))) | ||
| 176 | (category (cdr (assq 'category meta)))) | ||
| 177 | (unless (and (eq 'file category) | ||
| 178 | (file-directory-p | ||
| 179 | (buffer-substring-no-properties (icomplete--field-beg) | ||
| 180 | (icomplete--field-end)))) | ||
| 181 | (minibuffer-complete-and-exit)))) | ||
| 182 | |||
| 170 | (defun icomplete-force-complete-and-kill () | 183 | (defun icomplete-force-complete-and-kill () |
| 171 | "Complete minibuffer, kill current prospect, don't exit. | 184 | "Complete minibuffer, kill current prospect, don't exit. |
| 172 | Killing the current prospect has different meanings according to | 185 | Killing the current prospect has different meanings according to |