lisp/icomplete.el: Miscellaneous doc fixes.
Use Icomplete everywhere instead of icomplete for consistency.
(icomplete-max-delay-chars): Fix typo.
(icomplete-mode): Use \[].
(icomplete-tidy, icomplete-exhibit): Reflow.
(icomplete-minibuffer-setup-hook, icomplete-completions):
Remove superfluous backlashes.
lisp/ido.el: Miscellaneous doc fixes.
Use Ido everywhere instead of ido or `ido' for consistency.
(ido-record-ftp-work-directories, ido-merge-ftp-work-directories)
(ido-cache-ftp-work-directory-time, ido-slow-ftp-hosts)
(ido-slow-ftp-host-regexps, ido-reread-directory): Upcase "ftp".
(ido-separator): Extract obsolescence info from docstring and declare
with make-obsolete-variable.
(ido-minibuffer-setup-hook): Simplify example.
(ido-text, ido-text-init, ido-input-stack, ido-report-no-match)
(ido-wide-find-file, ido-wide-find-dir, ido-wide-find-dir-or-delete-dir)
(ido-completion-help, ido-completing-read): Fix typos in docstrings.
(ido-everywhere): Reflow docstring.
(ido-toggle-vc): Doc fix.
(ido-switch-buffer, ido-find-file): Use tabs to improve legibility
of long list of keybindings.
(icomplete-pre-command-hook, icomplete-post-command-hook): Remove those
vars and replace them with functions.
(icomplete-minibuffer-setup): Adjust accordingly.
(icomplete--completion-table, icomplete--completion-predicate)
(icomplete--field-string, icomplete--field-beg, icomplete--field-end):
New functions.
(icomplete-forward-completions, icomplete-backward-completions)
(icomplete-simple-completing-p, icomplete-exhibit)
(icomplete-completions): Use them.
(icomplete--in-region-buffer): New var.
(icomplete--in-region-setup): New function.
(icomplete-mode): Use it.
rather than other way around.
(completion--some, completion-pcm--find-all-completions):
Don't delay signals when debugging.
(minibuffer-completion-contents): Beware fields within the
minibuffer contents.
(completion-all-sorted-completions): Use defvar-local.
(completion--do-completion, completion--cache-all-sorted-completions)
(completion-all-sorted-completions, minibuffer-force-complete):
Add args `beg' and `end'.
(completion--in-region-1): New fun, extracted from minibuffer-complete.
(minibuffer-complete): Use completion-in-region.
(completion-complete-and-exit): New fun, extracted from
minibuffer-complete-and-exit.
(minibuffer-complete-and-exit): Use it.
(completion--complete-and-exit): Rename from
minibuffer--complete-and-exit.
(completion-in-region--single-word): New function, extracted from
minibuffer-complete-word.
(minibuffer-complete-word): Use it.
(display-completion-list): Make `common-substring' argument obsolete.
(completion--in-region): Call completion--in-region-1 instead of
minibuffer-complete.
(completion-help-at-point): Pass boundaries to
minibuffer-completion-help as args rather than via an overlay.
(completion-pcm--string->pattern): Use `any-delim'.
(completion-pcm--optimize-pattern): New function.
(completion-pcm--pattern->regex): Handle `any-delim'.
* lisp/icomplete.el (icomplete-forward-completions)
(icomplete-backward-completions, icomplete-completions):
Adjust calls to completion-all-sorted-completions and
completion--cache-all-sorted-completions.
(icomplete-with-completion-tables): Default to t.
* lisp/emacs-lisp/crm.el (crm--current-element): Rename from
crm--select-current-element. Don't put an overlay but return the
boundaries instead.
(crm--completion-command): Take two new args to bind to the boundaries.
(crm-completion-help): Adjust accordingly.
(crm-complete): Use completion-in-region.
(crm-complete-word): Use completion-in-region--single-word.
(crm-complete-and-exit): Use completion-complete-and-exit.
* lisp/icomplete.el (icomplete-minibuffer-map): Unbind `C-s' and `C-r'.
Bind `C-.' and `C-,' to `icomplete-forward-completions' and
`icomplete-backward-completions'.
* lisp/ido.el (ido-init-completion-maps): Bind `C-.' and `C-,' to
`ido-next-match' and `ido-prev-match' resply.
* lisp/iswitchb.el (iswitchb-read-buffer): Bind `C-.' and `C-,' to
`iswitchb-next-match' and `iswitchb-prev-match' resply.
(icomplete-show-key-bindings): Remove custom var.
(icomplete-get-keys): Remove function.
(icomplete-forward-completions, icomplete-backward-completions):
New commands.
(icomplete-minibuffer-map): New var.
(icomplete-minibuffer-setup): Use it.
(icomplete-exhibit): Don't delay if the list of completions is known.
(icomplete-separator): New custom.
(icomplete-completions): Use it.
* lisp/minibuffer.el (completion-all-sorted-completions): Delete duplicates.
(minibuffer-force-complete-and-exit): New command.
(minibuffer--complete-and-exit): New function extracted from
minibuffer-complete-and-exit.
(minibuffer-complete-and-exit): Use it.
* icomplete.el (icomplete-mode): Don't set completion-show-inline-help.
(icomplete-minibuffer-setup): Set completion-show-inline-help
locally during icompletion.
(completion-category-overrides): New defcustom.
(completion-metadata, completion--field-metadata)
(completion-metadata-get, completion--styles)
(completion--cycle-threshold): New functions.
(completion-try-completion, completion-all-completions):
Add `metadata' argument to choose completion-styles.
(completion--do-completion): Use metadata to choose cycling.
(completion-all-sorted-completions): Use metadata for sorting.
Remove :completion-cycle-penalty which is not needed any more.
(completion--try-word-completion): Add `metadata' argument.
(minibuffer-completion-help): Check metadata for annotation function
and sorting.
(completion-file-name-table): Return `category' metadata.
(minibuffer-completing-file-name): Make obsolete.
* lisp/simple.el (minibuffer-completing-symbol): Make obsolete.
* lisp/icomplete.el (icomplete-completions): Pass new `metadata' param to
completion-try-completion.
* src/minibuf.c (Finternal_complete_buffer): Return `category' metadata.
(read_minibuf): Use get_minibuffer.
(syms_of_minibuf): Use DEFSYM.
(Qmetadata): New var.
* src/data.c (Qbuffer): Don't make it static.
(syms_of_data): Use DEFSYM.
* lisp/minibuffer.el (completion-show-inline-help): New var.
(completion--do-completion, minibuffer-complete)
(minibuffer-force-complete, minibuffer-complete-word): Inhibit
minibuffer messages if completion-show-inline-help is nil.
* lisp/icomplete.el (icomplete-mode): Bind completion-show-inline-help
to avoid interference from inline help.
* icomplete.el (icomplete-completions): Use `non-essential'.
* net/tramp.el (tramp-connectable-p): New defun.
(tramp-handle-expand-file-name)
(tramp-completion-handle-file-name-all-completions)
(tramp-completion-handle-file-name-completion): Use it.