diff options
author | João Távora <joaotavora@gmail.com> | 2019-11-05 18:04:20 +0000 |
---|---|---|
committer | João Távora <joaotavora@gmail.com> | 2019-11-05 18:04:20 +0000 |
commit | 2b0f589134d9427a96ab8cf0d8473715740984ef (patch) | |
tree | 0e624d53824f485d4245bd48db68988383ef7cb4 /lisp | |
parent | 162979590d04a7d2fe0d980958d3da4b2940e69a (diff) | |
download | emacs-scratch/fido-mode.tar.gz |
Document fido-modescratch/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." (exit-minibuffer)))) (defun icomplete-magic-ido-ret () - "Exit forcing completion or enter directory, like `ido-mode'." + "Exit minibuffer or enter directory, like `ido-mode'." (interactive) (let* ((beg (icomplete--field-beg)) (md (completion--field-metadata beg)) (category (alist-get 'category (cdr md))) (dir (and (eq category 'file) (file-name-directory (icomplete--field-string)))) - (current (and dir - (car (completion-all-sorted-completions)))) - (probe (and current + (current (car (completion-all-sorted-completions))) + (probe (and dir current (expand-file-name (directory-file-name current) dir)))) - (if (and probe (file-directory-p probe) (not (string= current "./"))) - (icomplete-force-complete) - (icomplete-force-complete-and-exit)))) + (cond ((and probe (file-directory-p probe) (not (string= current "./"))) + (icomplete-force-complete)) + (current + (icomplete-force-complete-and-exit)) + (t + (exit-minibuffer))))) (defun icomplete-magic-ido-backward-updir () "Delete char before or go up directory, like `ido-mode'." @@ -330,6 +332,7 @@ more like `ido-mode' than regular `icomplete-mode'." (remove-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) (remove-hook 'minibuffer-setup-hook #'icomplete--fido-mode-setup) (when fido-mode + (icomplete-mode -1) (setq icomplete-mode t) (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) (add-hook 'minibuffer-setup-hook #'icomplete--fido-mode-setup))) @@ -355,6 +358,7 @@ completions: (remove-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup) (remove-hook 'completion-in-region-mode-hook #'icomplete--in-region-setup) (when icomplete-mode + (fido-mode -1) (when icomplete-in-buffer (add-hook 'completion-in-region-mode-hook #'icomplete--in-region-setup)) (add-hook 'minibuffer-setup-hook #'icomplete-minibuffer-setup))) |