diff options
| author | João Távora | 2019-11-05 18:04:20 +0000 |
|---|---|---|
| committer | João Távora | 2019-11-05 22:59:33 +0000 |
| commit | 213643a890913f10bac710ca8537e8b1125941d6 (patch) | |
| tree | 4622d7be7b2fde5ebb2b301f1761323b979767bb /lisp | |
| parent | e1d24f3c4cdc052d9ba87801fde09fae0d86d0b3 (diff) | |
| download | emacs-213643a890913f10bac710ca8537e8b1125941d6.tar.gz emacs-213643a890913f10bac710ca8537e8b1125941d6.zip | |
Document fido-mode
* doc/emacs/buffers.texi (Icomplete): Document Fido Mode.
* etc/NEWS: Mention Fido Mode.
* lisp/icomplete.el (icomplete-mode): Ensure fido-mode is off.
(fido-mode): Ensure icomplete-mode is off.
(icomplete-magic-ido-ret): Don't force completions if no
completions.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/icomplete.el | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 777fdce13a0..40f4f0bc688 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el | |||
| @@ -273,20 +273,22 @@ require user confirmation." | |||
| 273 | (exit-minibuffer)))) | 273 | (exit-minibuffer)))) |
| 274 | 274 | ||
| 275 | (defun icomplete-magic-ido-ret () | 275 | (defun icomplete-magic-ido-ret () |
| 276 | "Exit forcing completion or enter directory, like `ido-mode'." | 276 | "Exit minibuffer or enter directory, like `ido-mode'." |
| 277 | (interactive) | 277 | (interactive) |
| 278 | (let* ((beg (icomplete--field-beg)) | 278 | (let* ((beg (icomplete--field-beg)) |
| 279 | (md (completion--field-metadata beg)) | 279 | (md (completion--field-metadata beg)) |
| 280 | (category (alist-get 'category (cdr md))) | 280 | (category (alist-get 'category (cdr md))) |
| 281 | (dir (and (eq category 'file) | 281 | (dir (and (eq category 'file) |
| 282 | (file-name-directory (icomplete--field-string)))) | 282 | (file-name-directory (icomplete--field-string)))) |
| 283 | (current (and dir | 283 | (current (car (completion-all-sorted-completions))) |
| 284 | (car (completion-all-sorted-completions)))) | 284 | (probe (and dir current |
| 285 | (probe (and current | ||
| 286 | (expand-file-name (directory-file-name current) dir)))) | 285 | (expand-file-name (directory-file-name current) dir)))) |
| 287 | (if (and probe (file-directory-p probe) (not (string= current "./"))) | 286 | (cond ((and probe (file-directory-p probe) (not (string= current "./"))) |
| 288 | (icomplete-force-complete) | 287 | (icomplete-force-complete)) |
| 289 | (icomplete-force-complete-and-exit)))) | 288 | (current |
| 289 | (icomplete-force-complete-and-exit)) | ||
| 290 | (t | ||
| 291 | (exit-minibuffer))))) | ||
| 290 | 292 | ||
| 291 | (defun icomplete-magic-ido-backward-updir () | 293 | (defun icomplete-magic-ido-backward-updir () |
| 292 | "Delete char before or go up directory, like `ido-mode'." | 294 | "Delete char before or go up directory, like `ido-mode'." |
| @@ -330,6 +332,7 @@ more like `ido-mode' than regular `icomplete-mode'." | |||
| 330 | (remove-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) | 332 | (remove-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) |
| 331 | (remove-hook 'minibuffer-setup-hook #'icomplete--fido-mode-setup) | 333 | (remove-hook 'minibuffer-setup-hook #'icomplete--fido-mode-setup) |
| 332 | (when fido-mode | 334 | (when fido-mode |
| 335 | (icomplete-mode -1) | ||
| 333 | (setq icomplete-mode t) | 336 | (setq icomplete-mode t) |
| 334 | (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) | 337 | (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) |
| 335 | (add-hook 'minibuffer-setup-hook #'icomplete--fido-mode-setup))) | 338 | (add-hook 'minibuffer-setup-hook #'icomplete--fido-mode-setup))) |
| @@ -355,6 +358,7 @@ completions: | |||
| 355 | (remove-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) | 358 | (remove-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) |
| 356 | (remove-hook 'completion-in-region-mode-hook #'icomplete--in-region-setup) | 359 | (remove-hook 'completion-in-region-mode-hook #'icomplete--in-region-setup) |
| 357 | (when icomplete-mode | 360 | (when icomplete-mode |
| 361 | (fido-mode -1) | ||
| 358 | (when icomplete-in-buffer | 362 | (when icomplete-in-buffer |
| 359 | (add-hook 'completion-in-region-mode-hook #'icomplete--in-region-setup)) | 363 | (add-hook 'completion-in-region-mode-hook #'icomplete--in-region-setup)) |
| 360 | (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup))) | 364 | (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup))) |