Comments (25)
You know, if we keep at it we will eventually match the capabilities Icicles has had for 15 years (or more?) now...
from orderless.
oantolin: And anyway maybe both things would be useful: having an extra string to match against, with normal orderless matching (I know @protesilaos has wanted the abilitity to match against the annotation), and also arbitrary predicates that are not string matching.
This is great! I am afraid I cannot be of any help here with regard to the technicalities, though I am eager to test any such functionality and provide feedback.
In the meantime, I flush lines in Embark collect buffers (e.g. targeting the c
meta datum (commands) in consult-imenu
).
oantolin: You know, if we keep at it we will eventually match the capabilities Icicles has had for 15 years (or more?) now...
Correct!
minad: Yes, that's the plan! Have you tried it?
Edit: Here is the list of features we should implement:
Looking forward to the new iceberg package! Seriously though, there probably are lots of good idea in there. Drew has intimate knowledge of core Emacs stuff and is a veteran in the field.
from orderless.
And anyway maybe both things would be useful: having an extra string to match against, with normal orderless
matching (I know @protesilaos has wanted the abilitity to match against the annotation), and also arbitrary predicates that are not string matching.
from orderless.
I like how you keep the title up to date. 😛
from orderless.
The bundle of these packages is called iceberg from now on 🤣
from orderless.
These are interesting ideas, I also see some use cases for special filter expressions based on completion category. For example one could maybe use @match
to filter for a match in the docstrings in command/function completions or for example to filter buffer completions for buffers which contain a match for this in their contents (I believe helm also supports this).
from orderless.
Okay, @clemera your idea is even more interesting. The way I originally thought about this is that Consult attaches some metadata to the candidates, but this is obviously not a good idea since it couples Consult and Orderless too closely. But from your idea this gets me thinking how we can implement it nicely even for existing commands.
Add support only to Orderless - add a list of (category key function)
entries, for example (symbol ?@ (lambda (cand) ...))
. Then these filter functions can be configured afterwards. Maybe the key is not even necessary or we use a fixed key? Or support multiple different "tags"?
Only support for consult-multi dispatching would be necessary to have in orderless then, but this would probably be 5 lines as it is in embark-consult and in marginalia.
from orderless.
Ooh, I like that idea!
from orderless.
I quickly looked into this and it seems to require an additional filtering step since as of now everything is compiled to regular expressions. In orderless-filter
, does it make sense to use a modified predicate or just walk over the candidates again as returned by all-completions
?
from orderless.
Here's a different idea: what if we instead have an alist of (category . extradata)
pairs, where the extradata
is a function that given a candidate produces either a string or a buffer. Then orderless components that start with a @
match against the extra string or buffer rather than against the candidate.
This would be nice for matching against buffer contents or docstrings.
from orderless.
Mmh. In both versions we want to select the metadata based on the category, but we already tried that and you conviced me @minad, that completion styles aren't supposed to know the category.
from orderless.
Here's a different idea: what if we instead have an alist of (category . extradata) pairs, where the extradata is a function that given a candidate produces either a string or a buffer.
This sounds good too, but what if I want multiple different extradatas? For this I proposed the key. For example I would want to match buffer content and buffer major mode.
Mmh. In both versions we want to select the metadata based on the category, but we already tried that and you conviced me @minad, that completion styles aren't supposed to know the category.
Ouch, right. But the issue can easily be avoided by the same approach as before - simply define derived completion styles for each category.
And anyway maybe both things would be useful: having an extra string to match against, with normal orderless matching (I know @protesilaos has wanted the abilitity to match against the annotation), and also arbitrary predicates that are not string matching.
Yes, both would be even better if it can be implemented with reasonable effort.
from orderless.
Yes, that's the plan! Have you tried it?
Edit: Here is the list of features we should implement:
;; `a', `any', `buffer', `clear-option',
;; `cycle-icicle-expand-to-common-match',
;; `cycle-icicle-image-file-thumbnail',
;; `cycle-icicle-incremental-completion',
;; `cycle-icicle-sort-order',
;; `cycle-icicle-S-TAB-completion-method',
;; `cycle-icicle-TAB-completion-method', `file',
;; `icicle-add-buffer-candidate', `icicle-add-buffer-config',
;; `icicle-add-entry-to-saved-completion-set',
;; `icicle-add-file-to-fileset',
;; `icicle-add/update-saved-completion-set', `icicle-anything',
;; `icicle-apply' `icicle-apropos', `icicle-apropos-command',
;; `icicle-apropos-function', `icicle-apropos-option',
;; `icicle-apropos-options-of-type', `icicle-apropos-value',
;; `icicle-apropos-variable',
;; `icicle-apropos-vars-w-val-satisfying', `icicle-apropos-zippy',
;; `icicle-auto-complete-keys-mode', `icicle-bbdb-complete-mail',
;; `icicle-bbdb-complete-name', `icicle-bookmark',
;; `icicle-bookmark-a-file', `icicle-bookmark-all-tags',
;; `icicle-bookmark-all-tags-other-window',
;; `icicle-bookmark-all-tags-regexp',
;; `icicle-bookmark-all-tags-regexp-other-window',
;; `icicle-bookmark-autofile', `icicle-bookmark-autofile-all-tags',
;; `icicle-bookmark-autofile-all-tags-other-window',
;; `icicle-bookmark-autofile-all-tags-regexp',
;; `icicle-bookmark-autofile-all-tags-regexp-other-window',
;; `icicle-bookmark-autofile-other-window',
;; `icicle-bookmark-autofile-some-tags',
;; `icicle-bookmark-autofile-some-tags-other-window',
;; `icicle-bookmark-autofile-some-tags-regexp',
;; `icicle-bookmark-autofile-some-tags-regexp-other-window',
;; `icicle-bookmark-autonamed',
;; `icicle-bookmark-autonamed-other-window',
;; `icicle-bookmark-autonamed-this-buffer',
;; `icicle-bookmark-autonamed-this-buffer-other-window',
;; `icicle-bookmark-bookmark-file',
;; `icicle-bookmark-bookmark-list', `icicle-bookmark-cmd',
;; `icicle-bookmark-desktop', `icicle-bookmark-dired',
;; `icicle-bookmark-dired-other-window',
;; `icicle-bookmarked-buffer-list', `icicle-bookmarked-file-list',
;; `icicle-bookmark-file', `icicle-bookmark-file-all-tags',
;; `icicle-bookmark-file-all-tags-other-window',
;; `icicle-bookmark-file-all-tags-regexp',
;; `icicle-bookmark-file-all-tags-regexp-other-window',
;; `icicle-bookmark-file-other-window',
;; `icicle-bookmark-file-some-tags',
;; `icicle-bookmark-file-some-tags-other-window',
;; `icicle-bookmark-file-some-tags-regexp',
;; `icicle-bookmark-file-some-tags-regexp-other-window',
;; `icicle-bookmark-file-this-dir',
;; `icicle-bookmark-file-this-dir-other-window',
;; `icicle-bookmark-file-this-dir-all-tags',
;; `icicle-bookmark-file-this-dir-all-tags-other-window',
;; `icicle-bookmark-file-this-dir-all-tags-regexp',
;; `icicle-bookmark-file-this-dir-all-tags-regexp-other-window',
;; `icicle-bookmark-file-this-dir-some-tags',
;; `icicle-bookmark-file-this-dir-some-tags-other-window',
;; `icicle-bookmark-file-this-dir-some-tags-regexp',
;; `icicle-bookmark-file-this-dir-some-tags-regexp-other-window',
;; `icicle-bookmark-gnus', `icicle-bookmark-gnus-other-window',
;; `icicle-bookmark-image', `icicle-bookmark-image-other-window',
;; `icicle-bookmark-info', `icicle-bookmark-info-other-window',
;; `icicle-bookmark-jump', `icicle-bookmark-jump-other-window',
;; `icicle-bookmark-list', `icicle-bookmark-local-file',
;; `icicle-bookmark-local-file-other-window',
;; `icicle-bookmark-man', `icicle-bookmark-man-other-window',
;; `icicle-bookmark-non-file',
;; `icicle-bookmark-non-file-other-window',
;; `icicle-bookmark-other-window', `icicle-bookmark-region',
;; `icicle-bookmark-region-other-window',
;; `icicle-bookmark-remote-file',
;; `icicle-bookmark-remote-file-other-window',
;; `icicle-bookmark-save-marked-files',
;; `icicle-bookmark-save-marked-files-as-project',
;; `icicle-bookmark-save-marked-files-more',
;; `icicle-bookmark-save-marked-files-persistently',
;; `icicle-bookmark-save-marked-files-to-variable',
;; `icicle-bookmark-set', `icicle-bookmark-some-tags',
;; `icicle-bookmark-some-tags-other-window',
;; `icicle-bookmark-some-tags-regexp',
;; `icicle-bookmark-some-tags-regexp-other-window',
;; `icicle-bookmark-specific-buffers',
;; `icicle-bookmark-specific-buffers-other-window',
;; `icicle-bookmark-specific-files',
;; `icicle-bookmark-specific-files-other-window',
;; `icicle-bookmark-tagged', `icicle-bookmark-tagged-other-window',
;; `icicle-bookmark-temporary',
;; `icicle-bookmark-temporary-other-window',
;; `icicle-bookmark-this-buffer',
;; `icicle-bookmark-this-buffer-other-window',
;; `icicle-bookmark-url', `icicle-bookmark-url-other-window'
;; `icicle-bookmark-w3m-other-window', `icicle-buffer',
;; `icicle-buffer-config', `icicle-buffer-list',
;; `icicle-buffer-narrowing', `icicle-buffer-no-search',
;; `icicle-buffer-no-search-other-window',
;; `icicle-buffer-other-window',
;; `icicle-change-alternative-sort-order',
;; `icicle-choose-completion-style-set', `icicle-choose-faces',
;; `icicle-choose-invisible-faces', `icicle-choose-visible-faces',
;; `icicle-choose-window-for-buffer-display',
;; `icicle-clear-history', `icicle-clear-current-history',
;; `icicle-color-theme', `icicle-comint-command',
;; `icicle-comint-dynamic-complete',
;; `icicle-comint-dynamic-complete-filename',
;; `icicle-comint-replace-by-expanded-filename',
;; `icicle-comint-search', `icicle-command-abbrev',
;; `icicle-compilation-search', `icicle-complete-keys',
;; `icicle-complete-menu-bar', `icicle-complete-thesaurus-entry',
;; `icicle-completing-yank', `icicle-customize-apropos',
;; `icicle-customize-apropos-faces',
;; `icicle-customize-apropos-groups',
;; `icicle-customize-apropos-options',
;; `icicle-customize-apropos-options-of-type',
;; `icicle-customize-apropos-opts-w-val-satisfying',
;; `icicle-customize-face', `icicle-customize-icicles-group',
;; `icicle-custom-theme', `icicle-cycle-expand-to-common-match',
;; `icicle-cycle-image-file-thumbnail',
;; `icicle-cycle-incremental-completion',
;; `icicle-dabbrev-completion', `icicle-delete-file',
;; `icicle-delete-window', `icicle-delete-windows',
;; `icicle-delete-windows-on', `icicle-describe-file',
;; `icicle-describe-option-of-type', `icicle-describe-package',
;; `icicle-describe-process',
;; `icicle-describe-var-w-val-satisfying', `icicle-directory-list',
;; `icicle-dired', `icicle-dired-chosen-files',
;; `icicle-dired-chosen-files-other-window',
;; `icicle-dired-insert-as-subdir', `icicle-dired-other-window',
;; `icicle-dired-project', `icicle-dired-project-other-window',
;; `icicle-dired-saved-file-candidates',
;; `icicle-dired-saved-file-candidates-other-window',
;; `icicle-dired-save-marked',
;; `icicle-dired-save-marked-as-project',
;; `icicle-dired-save-marked-more',
;; `icicle-dired-save-marked-more-recursive',
;; `icicle-dired-save-marked-persistently',
;; `icicle-dired-save-marked-recursive',
;; `icicle-dired-save-marked-to-cache-file-recursive',
;; `icicle-dired-save-marked-to-fileset-recursive',
;; `icicle-dired-save-marked-to-variable',
;; `icicle-dired-save-marked-to-variable-recursive',
;; `icicle-dired-smart-shell-command', `icicle-doc',
;; `icicle-doremi-increment-variable+',
;; `icicle-exchange-point-and-mark',
;; `icicle-execute-extended-command',
;; `icicle-execute-named-keyboard-macro', `icicle-face-list',
;; `icicle-file', `icicle-file-list', `icicle-file-other-window',
;; `icicle-find-file', `icicle-find-file-abs-no-search',
;; `icicle-find-file-abs-no-search-other-window',
;; `icicle-find-file-abs-of-content',
;; `icicle-find-file-abs-of-content-other-window',
;; `icicle-find-file-absolute',
;; `icicle-find-file-absolute-other-window',
;; `icicle-find-file-abs-read-only',
;; `icicle-find-file-abs-read-only-other-window',
;; `icicle-find-file-all-tags',
;; `icicle-find-file-all-tags-other-window',
;; `icicle-find-file-all-tags-regexp',
;; `icicle-find-file-all-tags-regexp-other-window',
;; `icicle-find-file-handle-bookmark',
;; `icicle-find-file-handle-bookmark-other-window',
;; `icicle-find-file-in-tags-table',
;; `icicle-find-file-in-tags-table-other-window',
;; `icicle-find-file-of-content',
;; `icicle-find-file-of-content-other-window',
;; `icicle-find-file-other-window', `icicle-find-file-read-only',
;; `icicle-find-file-read-only-other-window',
;; `icicle-find-file-some-tags',
;; `icicle-find-file-some-tags-other-window',
;; `icicle-find-file-some-tags-regexp',
;; `icicle-find-file-some-tags-regexp-other-window',
;; `icicle-find-file-tagged',
;; `icicle-find-file-tagged-other-window', `icicle-find-first-tag',
;; `icicle-find-first-tag-other-window', `icicle-find-tag',
;; `icicle-font', `icicle-font-lock-keyword', `icicle-frame-bg',
;; `icicle-frame-fg', `icicle-fundoc', `icicle-goto-any-marker',
;; `icicle-goto-global-marker',
;; `icicle-goto-global-marker-or-pop-global-mark',
;; `icicle-goto-marker', `icicle-goto-marker-or-set-mark-command',
;; `icicle-grep-saved-file-candidates',
;; `icicle-gud-gdb-complete-command', `icicle-handle-switch-frame',
;; `icicle-hide-faces', `icicle-hide-only-faces',
;; `icicle-hide/show-comments', `icicle-ido-like-mode',
;; `icicle-imenu', `icicle-imenu-command',
;; `icicle-imenu-command-full', `icicle-imenu-face',
;; `icicle-imenu-face-full', `icicle-imenu-full',
;; `icicle-imenu-key-explicit-map',
;; `icicle-imenu-key-explicit-map-full',
;; `icicle-imenu-key-implicit-map',
;; `icicle-imenu-key-implicit-map-full', `icicle-imenu-macro',
;; `icicle-imenu-macro-full',
;; `icicle-imenu-non-interactive-function',
;; `icicle-imenu-non-interactive-function-full',
;; `icicle-imenu-user-option', `icicle-imenu-user-option-full',
;; `icicle-imenu-variable', `icicle-imenu-variable-full',
;; `icicle-increment-option', `icicle-increment-variable',
;; `icicle-Info-goto-node', `icicle-Info-goto-node-no-search',
;; `icicle-Info-goto-node-of-content', `icicle-Info-index',
;; `icicle-Info-index-20', `icicle-Info-menu',
;; `icicle-Info-menu-cmd', `icicle-Info-virtual-book',
;; `icicle-insert-buffer', `icicle-insert-thesaurus-entry',
;; `icicle-keyword-list', `icicle-kill-buffer', `icicle-kmacro',
;; `icicle-lisp-complete-symbol', `icicle-locate',
;; `icicle-locate-file', `icicle-locate-file-no-search',
;; `icicle-locate-file-no-search-no-symlinks',
;; `icicle-locate-file-no-search-no-symlinks-other-window',
;; `icicle-locate-file-no-search-other-window',
;; `icicle-locate-file-no-symlinks',
;; `icicle-locate-file-no-symlinks-other-window',
;; `icicle-locate-file-of-content',
;; `icicle-locate-file-of-content-no-symlinks',
;; `icicle-locate-file-of-content-no-symlinks-other-window',
;; `icicle-locate-file-of-content-other-window',
;; `icicle-locate-file-other-window', `icicle-locate-no-search',
;; `icicle-locate-no-search-other-window',
;; `icicle-locate-of-content',
;; `icicle-locate-of-content-other-window',
;; `icicle-locate-other-window',
;; `icicle-minibuffer-default-add-dired-shell-commands',
;; `icicle-minibuffer-help', `icicle-mode', `icy-mode',
;; `icicle-next-font-lock-keywords',
;; `icicle-next-font-lock-keywords-repeat',
;; `icicle-next-visible-thing', `icicle-object-action',
;; `icicle-occur', `icicle-occur-dired-marked',
;; `icicle-occur-dired-marked-recursive',
;; `icicle-ORIG-bbdb-complete-mail',
;; `icicle-ORIG-bbdb-complete-name',
;; `icicle-ORIG-comint-dynamic-complete',
;; `icicle-ORIG-comint-dynamic-complete-filename',
;; `icicle-ORIG-comint-replace-by-expanded-filename',
;; `icicle-ORIG-dired-read-shell-command',
;; `icicle-ORIG-ess-complete-object-name',
;; `icicle-ORIG-gud-gdb-complete-command',
;; `icicle-ORIG-read-buffer', `icicle-ORIG-read-file-name',
;; `icicle-ORIG-read-shell-command',
;; `icicle-other-window-or-frame', `icicle-pick-color-by-name',
;; `icicle-plist', `icicle-pop-tag-mark',
;; `icicle-pp-eval-expression', `icicle-previous-visible-thing',
;; `icicle-read-buffer', `icicle-read-color',
;; `icicle-read-color-WYSIWYG', `icicle-read-kbd-macro',
;; `icicle-recent-file', `icicle-recent-file-no-search',
;; `icicle-recent-file-no-search-other-window',
;; `icicle-recent-file-of-content',
;; `icicle-recent-file-of-content-other-window',
;; `icicle-recent-file-other-window',
;; `icicle-recompute-shell-command-candidates',
;; `icicle-regexp-list', `icicle-remove-buffer-candidate',
;; `icicle-remove-buffer-config',
;; `icicle-remove-entry-from-saved-completion-set',
;; `icicle-remove-file-from-recentf-list',
;; `icicle-remove-saved-completion-set',
;; `icicle-repeat-complex-command', `icicle-reset-option-to-nil',
;; `icicle-resolve-file-name', `icicle-save-string-to-variable',
;; `icicle-search', `icicle-search-all-tags-bookmark',
;; `icicle-search-all-tags-regexp-bookmark',
;; `icicle-search-autofile-bookmark',
;; `icicle-search-autonamed-bookmark', `icicle-search-bookmark',
;; `icicle-search-bookmark-list-bookmark',
;; `icicle-search-bookmark-list-marked',
;; `icicle-search-bookmarks-together', `icicle-search-buffer',
;; `icicle-search-buff-menu-marked', `icicle-search-char-property',
;; `icicle-search-defs', `icicle-search-defs-full',
;; `icicle-search-dired-bookmark', `icicle-search-dired-marked',
;; `icicle-search-dired-marked-recursive', `icicle-search-file',
;; `icicle-search-file-bookmark', `icicle-search-generic',
;; `icicle-search-gnus-bookmark',
;; `icicle-search-highlight-cleanup',
;; `icicle-search-ibuffer-marked', `icicle-search-info-bookmark',
;; `icicle-search-keywords', `icicle-search-lines',
;; `icicle-search-local-file-bookmark',
;; `icicle-search-man-bookmark', `icicle-search-non-file-bookmark',
;; `icicle-search-overlay-property', `icicle-search-pages',
;; `icicle-search-paragraphs', `icicle-search-region-bookmark',
;; `icicle-search-remote-file-bookmark', `icicle-search-sentences',
;; `icicle-search-some-tags-bookmark',
;; `icicle-search-some-tags-regexp-bookmark',
;; `icicle-search-specific-buffers-bookmark',
;; `icicle-search-specific-files-bookmark',
;; `icicle-search-temporary-bookmark',
;; `icicle-search-text-property', `icicle-search-thing',
;; `icicle-search-this-buffer-bookmark',
;; `icicle-search-url-bookmark', `icicle-search-w3m-bookmark',
;; `icicle-search-w-isearch-string', `icicle-search-word',
;; `icicle-search-xml-element',
;; `icicle-search-xml-element-text-node',
;; `icicle-select-bookmarked-region', `icicle-select-frame',
;; `icicle-select-frame-by-name', `icicle-select-text-at-point',
;; `icicle-select-window', `icicle-select-window-by-name',
;; `icicle-select-zone', `icicle-send-bug-report',
;; `icicle-send-signal-to-process', `icicle-set-option-to-t',
;; `icicle-set-S-TAB-methods-for-command',
;; `icicle-set-TAB-methods-for-command', `icicle-sexp-list',
;; `icicle-shell-command', `icicle-shell-command-on-region',
;; `icicle-shell-dynamic-complete-command',
;; `icicle-shell-dynamic-complete-environment-variable',
;; `icicle-shell-dynamic-complete-filename', `icicle-show-faces',
;; `icicle-show-only-faces', `icicle-skip-this-command',
;; `icicle-string-list', `icicle-synonyms', `icicle-tag-a-file',
;; `icicle-tags-search', `icicle-switch-to/from-minibuffer',
;; `icicle-toggle-.', `icicle-toggle-~-for-home-dir',
;; `icicle-toggle-alternative-sorting',
;; `icicle-toggle-angle-brackets', `icicle-toggle-annotation',
;; `icicle-toggle-case-sensitivity', `icicle-toggle-C-for-actions',
;; `icicle-toggle-completions-format', `icicle-toggle-dot',
;; `icicle-toggle-expand-directory',
;; `icicle-toggle-expand-to-common-match',
;; `icicle-toggle-hiding-common-match',
;; `icicle-toggle-hiding-non-matching-lines',
;; `icicle-toggle-highlight-all-current',
;; `icicle-toggle-highlight-historical-candidates',
;; `icicle-toggle-highlight-saved-candidates',
;; `icicle-toggle-icomplete-mode',
;; `icicle-toggle-ignored-extensions',
;; `icicle-toggle-ignored-space-prefix',
;; `icicle-toggle-ignoring-comments',
;; `icicle-toggle-include-cached-files',
;; `icicle-toggle-include-recent-files',
;; `icicle-toggle-literal-replacement',
;; `icicle-toggle-network-drives-as-remote',
;; `icicle-toggle-option', `icicle-toggle-proxy-candidates',
;; `icicle-toggle-regexp-quote',
;; `icicle-toggle-remote-file-testing',
;; `icicle-toggle-search-cleanup',
;; `icicle-toggle-search-complementing-domain',
;; `icicle-toggle-search-replace-common-match',
;; `icicle-toggle-search-replace-whole',
;; `icicle-toggle-search-whole-word',
;; `icicle-toggle-show-multi-completion', `icicle-toggle-sorting',
;; `icicle-toggle-transforming',
;; `icicle-toggle-WYSIWYG-Completions', `icicle-top-level',
;; `icicle-untag-a-file', `icicle-vardoc',
;; `icicle-visit-marked-file-of-content',
;; `icicle-visit-marked-file-of-content-other-window',
;; `icicle-visit-marked-file-of-content-recursive',
;; `icicle-visit-marked-file-of-content-recursive-other-window',
;; `icicle-where-is', `icicle-widget-file-complete',
;; `icicle-yank-maybe-completing', `icicle-yank-pop-commands',
;; `icicle-zap-to-char' (Emacs 23-25), `toggle', `synonyms',
;; `toggle-icicle-~-for-home-dir',
;; `toggle-icicle-alternative-sorting',
;; `toggle-icicle-angle-brackets', `toggle-icicle-annotation',
;; `toggle-icicle-case-sensitivity', `toggle-icicle-C-for-actions',
;; `toggle-icicle-completions-format', `toggle-icicle-dot',
;; `toggle-icicle-expand-directory',
;; `toggle-icicle-expand-to-common-match',
;; `toggle-icicle-hiding-common-match',
;; `toggle-icicle-hiding-non-matching-lines',
;; `toggle-icicle-highlight-all-current',
;; `toggle-icicle-highlight-historical-candidates',
;; `toggle-icicle-highlight-saved-candidates',
;; `toggle-icicle-icomplete-mode',
;; `toggle-icicle-ignored-extensions',
;; `toggle-icicle-ignored-space-prefix',
;; `toggle-icicle-include-cached-files',
;; `toggle-icicle-include-recent-files',
;; `toggle-icicle-incremental-completion',
;; `toggle-icicle-literal-replacement',
;; `toggle-icicle-network-drives-as-remote',
;; `toggle-icicle-proxy-candidates', `toggle-icicle-regexp-quote',
;; `toggle-icicle-remote-file-testing',
;; `toggle-icicle-search-cleanup',
;; `toggle-icicle-search-complementing-domain',
;; `toggle-icicle-search-replace-common-match',
;; `toggle-icicle-search-replace-whole',
;; `toggle-icicle-search-whole-word',
;; `toggle-icicle-show-multi-completion', `toggle-icicle-sorting',
;; `toggle-icicle-transforming',
;; `toggle-icicle-WYSIWYG-Completions', `what-which-how'.
;;
;; Commands to be used mainly in the minibuffer or `*Completions*':
;;
;; `cycle-icicle-completion-style-set',
;; `cycle-icicle-expand-to-common-match',
;; `cycle-icicle-image-file-thumbnail',
;; `icicle-abort-recursive-edit', `icicle-all-candidates-action',
;; `icicle-all-candidates-alt-action',
;; `icicle-all-candidates-list-action',
;; `icicle-all-candidates-list-alt-action',
;; `icicle-apropos-complete', `icicle-apropos-complete-and-exit',
;; `icicle-apropos-complete-and-narrow',
;; `icicle-apropos-complete-and-widen',
;; `icicle-apropos-complete-no-display',
;; `icicle-bookmark-annotated-narrow',
;; `icicle-bookmark-autofile-narrow',
;; `icicle-bookmark-autonamed-narrow',
;; `icicle-bookmark-autonamed-this-buffer-narrow',
;; `icicle-backward-char-magic',
;; `icicle-backward-delete-char-untabify',
;; `icicle-backward-kill-paragraph',
;; `icicle-backward-kill-sentence', `icicle-backward-kill-sexp',
;; `icicle-backward-kill-word', `icicle-beginning-of-line+',
;; `icicle-bookmark-bookmark-file-narrow',
;; `icicle-bookmark-bookmark-list-narrow',
;; `icicle-bookmark-desktop-narrow',
;; `icicle-bookmark-dired-narrow',`icicle-bookmark-file-narrow',
;; `icicle-bookmark-file-this-dir-narrow',
;; `icicle-bookmark-gnus-narrow', `icicle-bookmark-image-narrow',
;; `icicle-bookmark-info-narrow',
;; `icicle-bookmark-local-file-narrow',
;; `icicle-bookmark-man-narrow', `icicle-bookmark-navlist-narrow',
;; `icicle-bookmark-non-file-narrow',
;; `icicle-bookmark-region-narrow',
;; `icicle-bookmark-remote-file-narrow',
;; `icicle-bookmark-specific-buffers-narrow',
;; `icicle-bookmark-specific-files-narrow',
;; `icicle-bookmark-temporary-narrow',
;; `icicle-bookmark-this-buffer-narrow',
;; `icicle-bookmark-url-narrow', `icicle-bookmark-w3m-narrow',
;; `icicle-candidate-action', `icicle-candidate-alt-action',
;; `icicle-candidate-read-fn-invoke',
;; `icicle-candidate-set-complement',
;; `icicle-candidate-set-define',
;; `icicle-candidate-set-difference',
;; `icicle-candidate-set-intersection',
;; `icicle-candidate-set-retrieve',
;; `icicle-candidate-set-retrieve-from-variable',
;; `icicle-candidate-set-retrieve-more',
;; `icicle-candidate-set-retrieve-persistent',
;; `icicle-candidate-set-save', `icicle-candidate-set-save-more',
;; `icicle-candidate-set-save-more-selected',
;; `icicle-candidate-set-save-persistently',
;; `icicle-candidate-set-save-selected',
;; `icicle-candidate-set-save-to-variable',
;; `icicle-candidate-set-swap', `icicle-candidate-set-truncate',
;; `icicle-candidate-set-union', `icicle-cand-preds',
;; `icicle-cd-for-abs-files', `icicle-cd-for-loc-files',
;; `icicle-change-alternative-sort-order',
;; `icicle-change-history-variable', `icicle-change-sort-order',
;; `icicle-change-sort-order', `icicle-choose-completion',
;; `icicle-choose-window-by-name', `icicle-clear-current-history',
;; `icicle-complete-current-candidate-as-input',
;; `icicle-completing-read+insert',
;; `icicle-Completions-mouse-3-menu',
;; `icicle-cycle-expand-to-common-match',
;; `icicle-cycle-image-file-thumbnail',
;; `icicle-cycle-incremental-completion',
;; `icicle-search-define-replacement',
;; `icicle-delete-backward-char', `icicle-delete-candidate-object',
;; `icicle-delete-char', `icicle-digit-argument',
;; `icicle-dispatch-C-^', `icicle-dispatch-C-.',
;; `icicle-dispatch-C-x.', `icicle-dispatch-M-_',
;; `icicle-dispatch-M-comma', `icicle-dispatch-M-q',
;; `icicle-display-candidates-in-Completions',
;; `icicle-doremi-candidate-width-factor+',
;; `icicle-doremi-increment-max-candidates+',
;; `icicle-doremi-increment-swank-prefix-length+',
;; `icicle-doremi-increment-swank-timeout+',
;; `icicle-doremi-inter-candidates-min-spaces',
;; `icicle-doremi-zoom-Completions+', `icicle-end-of-line+',
;; `icicle-erase-minibuffer',
;; `icicle-erase-minibuffer-or-history-element',
;; `icicle-exit-minibuffer', `icicle-file-all-tags-narrow',
;; `icicle-file-all-tags-regexp-narrow',
;; `icicle-file-some-tags-narrow',
;; `icicle-file-some-tags-regexp-narrow',
;; `icicle-forward-char-magic', `icicle-goto/kill-failed-input',
;; `icicle-help-on-candidate',
;; `icicle-help-on-next-apropos-candidate',
;; `icicle-help-on-next-prefix-candidate',
;; `icicle-help-on-previous-apropos-candidate',
;; `icicle-help-on-previous-prefix-candidate',
;; `icicle-help-string-non-completion', `icicle-history',
;; `icicle-insert-completion', `icicle-insert-dot-command',
;; `icicle-insert-history-element',
;; `icicle-insert-key-description',
;; `icicle-insert-list-join-string',
;; `icicle-insert-newline-in-minibuffer',
;; `icicle-insert-string-at-point',
;; `icicle-insert-string-from-variable', `icicle-isearch-complete',
;; `icicle-isearch-history-complete',
;; `icicle-isearch-history-insert',
;; `icicle-keep-only-buffer-cands-for-derived-mode',
;; `icicle-keep-only-buffer-cands-for-mode',
;; `icicle-keep-only-buffer-cands-for-visible',
;; `icicle-keep-only-past-inputs', `icicle-kill-line',
;; `icicle-kill-paragraph', `icicle-kill-region',
;; `icicle-kill-region-wimpy', `icicle-kill-sentence',
;; `icicle-kill-sexp', `icicle-kill-word', `icicle-make-directory',
;; `icicle-minibuffer-complete-and-exit', `icicle-minibuffer-help',
;; `icicle-mouse-candidate-action',
;; `icicle-mouse-candidate-alt-action',
;; `icicle-mouse-candidate-read-fn-invoke',
;; `icicle-mouse-candidate-set-save',
;; `icicle-mouse-candidate-set-save-more',
;; `icicle-mouse-choose-completion',
;; `icicle-mouse-help-on-candidate',
;; `icicle-mouse-remove-candidate',
;; `icicle-mouse-save/unsave-candidate',
;; `icicle-mouse-save-then-kill', `icicle-mouse-yank-secondary',
;; `icicle-move-to-next-completion',
;; `icicle-move-to-previous-completion', `icicle-multi-inputs-act',
;; `icicle-multi-inputs-save', `icicle-narrow-candidates',
;; `icicle-narrow-candidates-with-predicate',
;; `icicle-negative-argument', `icicle-next-apropos-candidate',
;; `icicle-next-apropos-candidate-action',
;; `icicle-next-apropos-candidate-alt-action',
;; `icicle-next-candidate-per-mode',
;; `icicle-next-candidate-per-mode-action',
;; `icicle-next-candidate-per-mode-alt-action',
;; `icicle-next-candidate-per-mode-help',
;; `icicle-next-completion-style-set',
;; `icicle-next-history-element', `icicle-next-line',
;; `icicle-next-prefix-candidate',
;; `icicle-next-prefix-candidate-action',
;; `icicle-next-prefix-candidate-alt-action',
;; `icicle-next-S-TAB-completion-method',
;; `icicle-ORIG-choose-completion', `icicle-ORIG-complete',
;; `icicle-ORIG-exit-minibuffer',
;; `icicle-ORIG-minibuffer-complete-and-exit',
;; `icicle-ORIG-mouse-choose-completion',
;; `icicle-ORIG-next-history-element', `icicle-ORIG-sit-for',
;; `icicle-ORIG-switch-to-completions', `icicle-other-history',
;; `icicle-plus-saved-sort',
;; `icicle-pp-eval-expression-in-minibuffer',
;; `icicle-prefix-complete', `icicle-prefix-complete-no-display',
;; `icicle-prefix-word-complete',
;; `icicle-previous-apropos-candidate',
;; `icicle-previous-apropos-candidate-action',
;; `icicle-previous-apropos-candidate-alt-action',
;; `icicle-previous-candidate-per-mode',
;; `icicle-previous-candidate-per-mode-action',
;; `icicle-previous-candidate-per-mode-alt-action',
;; `icicle-previous-candidate-per-mode-help',
;; `icicle-previous-line', `icicle-previous-prefix-candidate',
;; `icicle-previous-prefix-candidate-action',
;; `icicle-previous-prefix-candidate-alt-action',
;; `icicle-read+insert-file-name',
;; `icicle-recomplete-from-original-domain',
;; `icicle-regexp-quote-input',
;; `icicle-remove-buffer-cands-for-derived-mode',
;; `icicle-remove-buffer-cands-for-mode',
;; `icicle-remove-buffer-cands-for-visible',
;; `icicle-remove-candidate', `icicle-remove-Completions-window',
;; `icicle-resolve-file-name', `icicle-retrieve-last-input',
;; `icicle-retrieve-next-input', `icicle-retrieve-previous-input',
;; `icicle-reverse-sort-order', `icicle-roundup',
;; `icicle-save-predicate-to-variable',
;; `icicle-save/unsave-candidate',
;; `icicle-scroll-Completions-backward',
;; `icicle-scroll-Completions-forward', `icicle-scroll-backward',
;; `icicle-scroll-forward', `icicle-search-define-replacement',
;; `icicle-self-insert', `icicle-sort-alphabetical',
;; `icicle-sort-by-abbrev-frequency',
;; `icicle-sort-by-directories-first',
;; `icicle-sort-by-directories-last', `icicle-sort-by-file-type.',
;; `icicle-sort-by-flx-score',
;; `icicle-sort-by-last-file-access-time',
;; `icicle-sort-by-last-file-modification-time',
;; `icicle-sort-by-last-use', `icicle-sort-by-last-use-as-input',
;; `icicle-sort-by-last-use\,-dirs-first',
;; `icicle-sort-by-previous-use-alphabetically',
;; `icicle-sort-by-2nd-parts-alphabetically',
;; `icicle-sort-case-insensitive',
;; `icicle-sort-extra-candidates-first',
;; `icicle-sort-proxy-candidates-first',
;; `icicle-sort-special-candidates-first',
;; `icicle-sort-special-candidates-first',
;; `icicle-sort-turned-OFF', `icicle-switch-to-Completions-buf',
;; `icicle-switch-to-completions',
;; `icicle-switch-to/from-minibuffer', `icicle-toggle-.',
;; `icicle-toggle-~-for-home-dir',
;; `icicle-toggle-alternative-sorting',
;; `icicle-toggle-angle-brackets',
;; `icicle-toggle-case-sensitivity', `icicle-toggle-C-for-actions',
;; `icicle-toggle-completions-format', `icicle-toggle-dot',
;; `icicle-toggle-expand-to-common-match',
;; `icicle-toggle-hiding-common-match',
;; `icicle-toggle-hiding-non-matching-lines',
;; `icicle-toggle-highlight-all-current',
;; `icicle-toggle-highlight-historical-candidates',
;; `icicle-toggle-highlight-saved-candidates',
;; `icicle-toggle-ignored-extensions',
;; `icicle-toggle-ignored-space-prefix',
;; `icicle-toggle-ignoring-comments',
;; `icicle-toggle-literal-replacement',
;; `icicle-toggle-proxy-candidates', `icicle-toggle-regexp-quote',
;; `icicle-toggle-search-cleanup',
;; `icicle-toggle-search-complementing-domain',
;; `icicle-toggle-search-replace-common-match',
;; `icicle-toggle-search-replace-whole',
;; `icicle-toggle-search-whole-word',
;; `icicle-toggle-show-multi-completion', `icicle-toggle-sorting',
;; `icicle-toggle-transforming', `icicle-top-level',
;; `icicle-transpose-chars', `icicle-transpose-sexps',
;; `icicle-transpose-words', `icicle-universal-argument',
;; `icicle-universal-argument-minus',
;; `icicle-universal-argument-more',
;; `icicle-universal-argument-other-key', `icicle-up-directory',
;; `icicle-use-interactive-command-history',
;; `icicle-widen-candidates', `icicle-yank', `icicle-yank-pop',
;; `icicle-yank-secondary', `toggle-icicle-.',
;; `toggle-icicle-~-for-home-dir',
;; `toggle-icicle-alternative-sorting',
;; `toggle-icicle-angle-brackets',
;; `toggle-icicle-case-sensitivity', `toggle-icicle-C-for-actions',
;; `toggle-icicle-completions-format', `toggle-icicle-dot',
;; `toggle-icicle-expand-to-common-match',
;; `toggle-icicle-hiding-common-match',
;; `toggle-icicle-hiding-non-matching-lines',
;; `toggle-icicle-highlight-all-current',
;; `toggle-icicle-highlight-historical-candidates',
;; `toggle-icicle-ignored-extensions',
;; `toggle-icicle-ignored-space-prefix',
;; `toggle-icicle-incremental-completion',
;; `toggle-icicle-literal-replacement',
;; `toggle-icicle-network-drives-as-remote',
;; `toggle-icicle-proxy-candidates', `toggle-icicle-regexp-quote',
;; `toggle-icicle-search-cleanup',
;; `toggle-icicle-search-complementing-domain',
;; `toggle-icicle-search-replace-common-match',
;; `toggle-icicle-search-replace-whole',
;; `toggle-icicle-search-whole-word', `toggle-icicle-sorting',
;; `toggle-icicle-transforming'.
;;
;; Faces defined in Icicles (in Custom group `icicles'):
;;
;; `icicle-annotation', `icicle-candidate-part',
;; `icicle-common-match-highlight-Completions',
;; `icicle-complete-input', `icicle-completion',
;; `icicle-Completions-instruction-1',
;; `icicle-Completions-instruction-2',
;; `icicle-current-candidate-highlight', `icicle-extra-candidate',
;; `icicle-historical-candidate',
;; `icicle-historical-candidate-other',
;; `icicle-input-completion-fail',
;; `icicle-input-completion-fail-lax', `icicle-key-complete-menu',
;; `icicle-key-complete-menu-local',
;; `icicle-match-highlight-Completions',
;; `icicle-match-highlight-minibuffer', `icicle-mode-line-help',
;; `icicle-msg-emphasis', `icicle-multi-command-completion',
;; `icicle-mustmatch-completion', `icicle-proxy-candidate',
;; `icicle-saved-candidate', `icicle-search-context-level-1',
;; `icicle-search-context-level-2',
;; `icicle-search-context-level-3',
;; `icicle-search-context-level-4',
;; `icicle-search-context-level-5',
;; `icicle-search-context-level-6',
;; `icicle-search-context-level-7',
;; `icicle-search-context-level-8', `icicle-search-current-input',
;; `icicle-search-main-regexp-current',
;; `icicle-search-main-regexp-others', `icicle-special-candidate',
;; `icicle-whitespace-highlight', `minibuffer-prompt'.
;;
;; Widgets defined in Icicles:
;;
;; `icicle-color', `icicle-file', `icicle-ORIG-color',
;; `icicle-ORIG-file'.
;;
;; User options defined in Icicles:
;;
;; `icicle-act-before-cycle-flag',
;; `icicle-add-proxy-candidates-flag',
;; `icicle-alternative-actions-alist',
;; `icicle-alternative-sort-comparer',
;; `icicle-anything-transform-candidates-flag',
;; `icicle-apropos-complete-keys',
;; `icicle-apropos-complete-no-display-keys',
;; `icicle-apropos-cycle-next-keys',
;; `icicle-apropos-cycle-next-action-keys',
;; `icicle-apropos-cycle-next-alt-action-keys',
;; `icicle-apropos-cycle-next-help-keys',
;; `icicle-apropos-cycle-previous-keys',
;; `icicle-apropos-cycle-previous-action-keys',
;; `icicle-apropos-cycle-previous-alt-action-keys',
;; `icicle-apropos-cycle-previous-help-keys',
;; `icicle-auto-complete-key-delay',
;; `icicle-bookmark-name-length-max',
;; `icicle-bookmark-refresh-cache-flag',
;; `icicle-buffer-candidate-key-bindings', `icicle-buffer-configs',
;; `icicle-buffer-extras',
;; `icicle-buffer-ignore-space-prefix-flag',
;; `icicle-buffer-include-cached-files-nflag',
;; `icicle-buffer-include-recent-files-nflag',
;; `icicle-buffer-match-regexp', `icicle-buffer-no-match-regexp',
;; `icicle-buffer-predicate', `icicle-buffer-prefix-arg-filtering',
;; `icicle-buffer-require-match-flag'
;; `icicle-buffer-skip-functions', `icicle-buffer-sort',
;; `icicle-buffers-ido-like-flag', `icicle-candidate-action-keys',
;; `icicle-candidate-help-keys', `icicle-candidate-width-factor',
;; `icicle-cand-preds-all', `icicle-cand-preds-for-bookmark',
;; `icicle-cand-preds-for-buffer', `icicle-cand-preds-for-color',
;; `icicle-cand-preds-for-face', `icicle-cand-preds-for-file',
;; `icicle-cand-preds-for-frame', `icicle-cand-preds-for-misc',
;; `icicle-cand-preds-for-package', `icicle-cand-preds-for-symbol',
;; `icicle-cand-preds-for-variable',
;; `icicle-cand-preds-for-window',
;; `icicle-change-region-background-flag',
;; `icicle-change-sort-order-completion',
;; `icicle-C-l-uses-completion-flag',
;; `icicle-cmpl-include-cdabbrev-flag',
;; `icicle-cmpl-max-candidates-to-cycle', `icicle-color-themes',
;; `icicle-comint-dynamic-complete-replacements',
;; `icicle-command-abbrev-alist',
;; `icicle-command-abbrev-match-all-parts-flag',
;; `icicle-command-abbrev-priority-flag',
;; `icicle-complete-key-anyway-flag',
;; `icicle-complete-keys-ignored-prefix-keys',
;; `icicle-complete-keys-self-insert-ranges',
;; `icicle-completing-read+insert-keys',
;; `icicle-completion-history-max-length',
;; `icicle-completion-key-bindings',
;; `icicle-completion-list-key-bindings',
;; `icicle-completion-style-sets',
;; `icicle-Completions-display-min-input-chars',
;; `icicle-completions-format',
;; `icicle-Completions-mouse-3-menu-entries',
;; `icicle-Completions-max-columns',
;; `icicle-Completions-text-scale-decrease',
;; `icicle-Completions-window-max-height',
;; `icicle-customize-save-flag',
;; `icicle-customize-save-variable-function',
;; `icicle-custom-themes', `icicle-custom-themes-accumulate-flag',
;; `icicle-custom-themes-update-flag',
;; `icicle-default-cycling-mode',
;; `icicle-default-in-prompt-format-function',
;; `icicle-default-thing-insertion', `icicle-default-value',
;; `icicle-define-alias-commands-flag',
;; `icicle-deletion-action-flag', `icicle-dot-show-regexp-flag',
;; `icicle-dot-string', `icicle-expand-input-to-common-match',
;; `icicle-expand-input-to-common-match-alt', `icicle-file-extras',
;; `icicle-file-match-regexp', `icicle-file-no-match-regexp',
;; `icicle-file-predicate', `icicle-file-require-match-flag',
;; `icicle-file-skip-functions', `icicle-file-sort',
;; `icicle-files-ido-like-flag',
;; `icicle-filesets-as-saved-completion-sets-flag',
;; `icicle-find-file-expand-directory-flag',
;; `icicle-functions-to-redefine', `icicle-guess-commands-in-path',
;; `icicle-help-in-mode-line-delay',
;; `icicle-hide-common-match-in-Completions-flag',
;; `icicle-hide-non-matching-lines-flag',
;; `icicle-hide-whitespace-before-comment-flag',
;; `icicle-highlight-historical-candidates-flag',
;; `icicle-highlight-input-completion-failure',
;; `icicle-highlight-input-completion-failure-delay',
;; `icicle-highlight-input-completion-failure-threshold',
;; `icicle-highlight-input-initial-whitespace-flag',
;; `icicle-highlight-lighter-flag',
;; `icicle-highlight-saved-candidates-flag',
;; `icicle-icomplete-mode-max-candidates',
;; `icicle-ignore-comments-flag', `icicle-ignored-directories',
;; `icicle-image-files-in-Completions',
;; `icicle-image-preview-in-tooltip',
;; `icicle-incremental-completion',
;; `icicle-incremental-completion-delay',
;; `icicle-incremental-completion-threshold',
;; `icicle-Info-highlight-visited-nodes',
;; `icicle-inhibit-advice-functions', `icicle-inhibit-ding-flag',
;; `icicle-input-string', `icicle-inter-candidates-min-spaces',
;; `icicle-isearch-complete-keys',
;; `icicle-isearch-history-insert-keys',
;; `icicle-keep-Completions-for-sole-dir',
;; `icicle-key-complete-keys',
;; `icicle-key-complete-keys-for-minibuffer',
;; `icicle-key-descriptions-use-<>-flag',
;; `icicle-key-descriptions-use-angle-brackets-flag',
;; `icicle-keymaps-for-key-completion',
;; `icicle-kill-visited-buffers-flag', `icicle-kmacro-ring-max',
;; `icicle-levenshtein-distance', `icicle-list-join-string',
;; `icicle-list-nth-parts-join-string',
;; `icicle-mark-position-in-candidate', `icicle-max-candidates',
;; `icicle-menu-items-to-history-flag',
;; `icicle-minibuffer-key-bindings',
;; `icicle-minibuffer-setup-hook', `icicle-modal-cycle-down-keys',
;; `icicle-modal-cycle-down-action-keys',
;; `icicle-modal-cycle-down-alt-action-keys',
;; `icicle-modal-cycle-down-help-keys',
;; `icicle-modal-cycle-up-keys',
;; `icicle-modal-cycle-up-action-keys',
;; `icicle-modal-cycle-up-alt-action-keys',
;; `icicle-modal-cycle-up-help-keys', `icicle-mode',
;; `icicle-mode-hook', `icicle-move-Completions-frame',
;; `icicle-network-drive-means-remote-flag',
;; `icicle-no-match-hook', `icicle-option-type-prefix-arg-list',
;; `icicle-point-position-in-candidate',
;; `icicle-populate-interactive-history-flag',
;; `icicle-pp-eval-expression-print-length',
;; `icicle-pp-eval-expression-print-level',
;; `icicle-prefix-complete-keys',
;; `icicle-prefix-complete-no-display-keys',
;; `icicle-prefix-cycle-next-keys',
;; `icicle-prefix-cycle-next-action-keys',
;; `icicle-prefix-cycle-next-alt-action-keys',
;; `icicle-prefix-cycle-next-help-keys',
;; `icicle-prefix-cycle-previous-keys',
;; `icicle-prefix-cycle-previous-action-keys',
;; `icicle-prefix-cycle-previous-alt-action-keys',
;; `icicle-prefix-cycle-previous-help-keys',
;; `icicle-quote-shell-file-name-flag',
;; `icicle-read-char-by-name-multi-completion-flag' (Emacs 23-25),
;; `icicle-read+insert-file-name-keys', `icicle-recenter',
;; `icicle-regexp-quote-flag', `icicle-regexp-search-ring-max',
;; `icicle-region-background', `icicle-require-match-flag',
;; `icicle-saved-completion-sets', `icicle-search-cleanup-flag',
;; `icicle-search-from-isearch-keys',
;; `icicle-search-highlight-all-current-flag',
;; `icicle-search-highlight-context-levels-flag',
;; `icicle-search-highlight-threshold', `icicle-search-hook',
;; `icicle-search-key-prefix',
;; `icicle-search-replace-common-match-flag',
;; `icicle-search-replace-literally-flag',
;; `icicle-search-replace-whole-candidate-flag',
;; `icicle-search-ring-max', `icicle-search-whole-word-flag',
;; `icicle-shell-command-candidates-cache',
;; `icicle-show-annotations-flag',
;; `icicle-show-Completions-help-flag',
;; `icicle-show-Completions-initially-flag',
;; `icicle-show-multi-completion-flag', `icicle-sort-comparer',
;; `icicle-sorting-max-candidates', `icicle-sort-orders-alist',
;; `icicle-special-candidate-regexp',
;; `icicle-S-TAB-completion-methods-alist',
;; `icicle-S-TAB-completion-methods-per-command',
;; `icicle-swank-prefix-length', `icicle-swank-timeout',
;; `icicle-TAB-completion-methods',
;; `icicle-TAB-completion-methods-per-command',
;; `icicle-TAB-shows-candidates-flag',
;; `icicle-TAB/S-TAB-only-completes-flag',
;; `icicle-test-for-remote-files-flag',
;; `icicle-thing-at-point-functions',
;; `icicle-top-level-key-bindings',
;; `icicle-top-level-when-sole-completion-delay',
;; `icicle-top-level-when-sole-completion-flag',
;; `icicle-touche-pas-aux-menus-flag', `icicle-type-actions-alist',
;; `icicle-unpropertize-completion-result-flag',
;; `icicle-update-input-hook', `icicle-use-~-for-home-dir-flag',
;; `icicle-use-C-for-actions-flag',
;; `icicle-use-anything-candidates-flag',
;; `icicle-use-candidates-only-once-flag',
;; `icicle-widgets-to-redefine', `icicle-word-completion-keys',
;; `icicle-WYSIWYG-Completions-flag', `icicle-yank-function',
;; `icicle-zap-to-char-candidates' (Emacs 23-25).
;;
;; Non-interactive functions in Icicles:
;;
;; `custom-variable-p', `icicle-2nd-part-string-less-p',
;; `icicle-abbreviate-or-expand-file-name', `icicle-activate-mark',
;; `icicle-add-key+cmd', `icicle-add-menu-item-to-cmd-history',
;; `icicle-alist-key-match', `icicle-all-candidates-action-1',
;; `icicle-all-completions', `icicle-all-exif-data',
;; `icicle-alpha-p', `icicle-alt-act-fn-for-type',
;; `icicle-any-candidates-p', `icicle-anychar-regexp',
;; `icicle-anything-candidate-value', `icicle-apply-action',
;; `icicle-apply-list-action', `icicle-apply-to-saved-candidate',
;; `icicle-apropos-any-candidates-p',
;; `icicle-apropos-any-file-name-candidates-p',
;; `icicle-apropos-candidates', `icicle-apropos-complete-1',
;; `icicle-apropos-complete-2', `icicle-apropos-opt-action',
;; `icicle-auto-complete-key', `icicle-autofile-action',
;; `icicle-backward-delete-char-untabify-magic',
;; `icicle-barf-if-outside-Completions',
;; `icicle-barf-if-outside-Completions-and-minibuffer',
;; `icicle-barf-if-outside-minibuffer', `icicle-binary-option-p',
;; `icicle-bind-completion-keys',
;; `icicle-bind-buffer-candidate-keys',
;; `icicle-bind-custom-minibuffer-keys',
;; `icicle-bind-file-candidate-keys', `icicle-bind-isearch-keys',
;; `icicle-bind-key-completion-keys-for-map-var',
;; `icicle-bind-key-completion-keys-in-keymaps-from',
;; `icicle-bind-other-keymap-keys',
;; `icicle-bind-top-level-commands', `icicle-bookmark-autofile-p',
;; `icicle-bookmark-autonamed-p',
;; `icicle-bookmark-autonamed-this-buffer-p',
;; `icicle-bookmark-bind-narrow-commands',
;; `icicle-bookmark-bookmark-file-p',
;; `icicle-bookmark-bookmark-list-p', `icicle-bookmark-cleanup',
;; `icicle-bookmark-cleanup-on-quit',
;; `icicle-bookmark-delete-action', `icicle-bookmark-desktop-p',
;; `icicle-bookmark-dired-p', `icicle-bookmark-dired-this-dir-p',
;; `icicle-bookmark-dired-wildcards-p', `icicle-bookmark-file-p',
;; `icicle-bookmark-file-this-dir-p', `icicle-bookmark-flagged-p',
;; `icicle-bookmark-function-p', `icicle-bookmark-gnus-p',
;; `icicle-bookmark-help-string',
;; `icicle-bookmark-icicle-search-hits-p',
;; `icicle-bookmark-image-p', `icicle-bookmark-info-p',
;; `icicle-bookmark-jump-1',
;; `icicle-bookmark-last-specific-buffer-p',
;; `icicle-bookmark-last-specific-file-p',
;; `icicle-bookmark-lighted-p',
;; `icicle-bookmark-local-directory-p',
;; `icicle-bookmark-local-file-p', `icicle-bookmark-man-p',
;; `icicle-bookmark-marked-p', `icicle-bookmark-modified-p',
;; `icicle-bookmark-navlist-p', `icicle-bookmark-non-file-p',
;; `icicle-bookmark-omitted-p', `icicle-bookmark-orphaned-file-p',
;; `icicle-bookmark-orphaned-local-file-p',
;; `icicle-bookmark-orphaned-remote-file-p',
;; `icicle-bookmark-region-p', `icicle-bookmark-remote-file-p',
;; `icicle-bookmark-sequence-p', `icicle-bookmark-snippet-p',
;; `icicle-bookmark-tagged-p', `icicle-bookmark-temporary-p',
;; `icicle-bookmark-this-buffer-p', `icicle-bookmark-url-p',
;; `icicle-bookmark-url-browse-p',
;; `icicle-bookmark-variable-list-p', `icicle-bookmark-w3m-p',
;; `icicle-bounds-of-thing-at-point',
;; `icicle-buffer-file/process-name-less-p',
;; `icicle-buffer-apropos-complete-match',
;; `icicle-buffer-cand-help', `icicle-buffer-modified-p',
;; `icicle-buffer-multi-complete', `icicle-buffer-name-prompt',
;; `icicle-buffer-smaller-p', `icicle-buffer-sort-*...*-last',
;; `icicle-cached-files-without-buffers',
;; `icicle-call-then-update-Completions',
;; `icicle-cancel-Help-redirection', `icicle-candidate-action-1',
;; `icicle-candidate-set-1', `icicle-candidate-set-retrieve-1',
;; `icicle-candidate-set-save-1',
;; `icicle-candidate-set-save-selected-1',
;; `icicle-candidate-short-help',
;; `icicle-case-insensitive-string-less-p',
;; `icicle-case-string-less-p', `icicle-cdr-lessp',
;; `icicle-char-cands-from-charlist' (Emacs 23-25),
;; `icicle-char-properties-in-buffer',
;; `icicle-char-properties-in-buffers',
;; `icicle-choose-anything-candidate',
;; `icicle-choose-candidate-of-type',
;; `icicle-choose-completion-string', `icicle-clear-history-1',
;; `icicle-clear-history-entry', `icicle-clear-lighter',
;; `icicle-clear-minibuffer',
;; `icicle-color-from-multi-completion-input',
;; `icicle-cmd2-after-load-bookmark+',
;; `icicle-cmd2-after-load-hexrgb',
;; `icicle-cmd2-after-load-highlight',
;; `icicle-cmd2-after-load-palette',
;; `icicle-cmd2-after-load-synonyms',
;; `icicle-cmd2-after-load-wid-edit+', `icicle-color-defined-p',
;; `icicle-color-blue-lessp', `icicle-color-completion-setup',
;; `icicle-color-distance-hsv-lessp',
;; `icicle-color-distance-rgb-lessp', `icicle-color-gray-p',
;; `icicle-color-green-lessp', `icicle-color-help',
;; `icicle-color-hsv-lessp', `icicle-color-hue-lessp',
;; `icicle-color-name-w-bg', `icicle-color-red-lessp',
;; `icicle-color-saturation-lessp', `icicle-color-supported-p',
;; `icicle-color-value-lessp', `icicle-column-wise-cand-nb',
;; `icicle-completion--embedded-envvar-table',
;; `icicle-Completions-popup-choice',
;; `icicle-Completions-popup-choice-1',
;; `icicle-comint-completion-at-point',
;; `icicle-comint-dynamic-complete-as-filename',
;; `icicle-comint-dynamic-simple-complete',
;; `icicle-comint-hook-fn',
;; `icicle-comint-replace-orig-completion-fns',
;; `icicle-comint-search-get-final-choice',
;; `icicle-comint-search-get-minibuffer-input',
;; `icicle-comint-search-send-input',
;; `icicle-command-abbrev-action', `icicle-command-abbrev-command',
;; `icicle-command-abbrev-matching-commands',
;; `icicle-command-abbrev-record', `icicle-command-abbrev-regexp',
;; `icicle-command-abbrev-save',
;; `icicle-command-abbrev-used-more-p',
;; `icicle-command-names-alphabetic-p',
;; `icicle-compilation-buffer-p', `icicle-compilation-hook-fn',
;; `icicle-compilation-search-in-context-fn',
;; `icicle-complete-again-update', `icicle-complete-keys-1',
;; `icicle-complete-keys-action', `icicle-completing-p',
;; `icicle-completing-read', `icicle-completing-read-default',
;; `icicle-completing-read-multiple',
;; `icicle-completing-read-history',
;; `icicle-completion-all-completions',
;; `icicle-completion-setup-function',
;; `icicle-completion-try-completion',
;; `icicle-compute-shell-command-candidates',
;; `icicle-convert-dots', `icicle-create-thumb',
;; `icicle-current-completion-in-Completions',
;; `icicle-current-sort-functions', `icicle-current-sort-order',
;; `icicle-current-TAB-method',
;; `icicle-customize-apropos-opt-action', `icicle-customize-faces',
;; `icicle-custom-type', `icicle-custom-variable-p',
;; `icicle-dabbrev--abbrev-at-point',
;; `icicle-default-buffer-names', `icicle-defaults-at-point',
;; `icicle-define-crm-completion-map', ,
;; `icicle-define-cycling-keys', `icicle-defined-thing-p',
;; `icicle-define-icicle-maps', `icicle-define-minibuffer-maps',
;; `icicle-delete-alist-dups', `icicle-delete-backward-char-magic',
;; `icicle-delete-candidate-object-1', `icicle-delete-char-magic',
;; `icicle-delete-count', `icicle-delete-current-candidate-object',
;; `icicle-delete-dups', `icicle-delete-file-or-directory',
;; `icicle-delete-whitespace-from-string',
;; `icicle-describe-opt-action',
;; `icicle-describe-opt-of-type-complete', `icicle-ding',
;; `icicle-dired-read-shell-command',
;; `icicle-dir-prefix-wo-wildcards',
;; `icicle-dirs-and-latest-use-first-p', `icicle-dirs-first-p',
;; `icicle-dirs-last-p', `icicle-displayable-cand-from-saved-set',
;; `icicle-display-cand-from-full-cand',
;; `icicle-display-completion-list', `icicle-display-Completions',
;; `icicle-doc-action', `icicle-edmacro-parse-keys',
;; `icicle-ensure-overriding-map-is-bound',
;; `icicle-execute-extended-command-1',
;; `icicle-expanded-common-match',
;; `icicle-expanded-common-match-1', `icicle-expand-file-name-20',
;; `icicle-expand-file-or-dir-name',
;; `icicle-explicit-saved-completion-candidates', `icicle-explore',
;; `icicle-extra-candidates-first-p', `icicle-face-bold-p',
;; `icicle-face-differs-from-default-p',
;; `icicle-face-inverse-video-p', `icicle-face-italic-p',
;; `icicle-face-nontrivial-p', `icicle-face-underline-p',
;; `icicle-face-valid-attribute-values',
;; `icicle-ffap-file-remote-p', `icicle-ffap-url-p',
;; `icicle-file-accessible-directory-p',
;; `icicle-file-compressed-p', `icicle-file-desktop-p',
;; `icicle-file-directory-p', `icicle-file-elc-p',
;; `icicle-file-executable-p', `icicle-file-exists-p',
;; `icicle-file-locked-p', `icicle-file-name-absolute-p',
;; `icicle-file-name-apropos-candidates',
;; `icicle-file-name-directory',
;; `icicle-file-name-directory-w-default',
;; `icicle-file-name-input-p', `icicle-file-name-nondirectory',
;; `icicle-file-name-prefix-candidates', `icicle-nondirectory-p',
;; `icicle-file-of-content-apropos-complete-match',
;; `icicle-file-readable-p', `icicle-file-regular-p',
;; `icicle-file-remote-p', `icicle-file-symlink-p',
;; `icicle-filesets-files-under', `icicle-file-type-less-p',
;; `icicle-file-writable-p', `icicle-files-within',
;; `icicle-files-within-1', `icicle-filter-alist',
;; `icicle-filter-wo-input', `icicle-find-file-abs-no-search-1',
;; `icicle-find-file-abs-no-search-action',
;; `icicle-find-file-abs-no-search-other-window-action',
;; `icicle-find-file-abs-no-search-ro-action',
;; `icicle-find-file-abs-no-search-ro-ow-action',
;; `icicle-find-file-abs-of-content-1',
;; `icicle-find-file-abs-of-content-action',
;; `icicle-find-file-abs-of-content-other-window-action',
;; `icicle-find-file-abs-of-content-ro-action',
;; `icicle-find-file-abs-of-content-ro-ow-action',
;; `icicle-find-file-no-search-action',
;; `icicle-find-file-no-search-other-window-action',
;; `icicle-find-file-of-content-ro-action',
;; `icicle-find-file-of-content-ro-ow-action',
;; `icicle-find-file-or-expand-dir',
;; `icicle-find-first-tag-action',
;; `icicle-find-first-tag-other-window-action',
;; `icicle-find-tag-action', `icicle-find-tag-default-as-regexp',
;; `icicle-find-tag-define-candidates',
;; `icicle-find-tag-define-candidates-1',
;; `icicle-find-tag-final-act', `icicle-find-tag-help',
;; `icicle-find-tag-quit-or-error',
;; `icicle-first-matching-candidate', `icicle-first-N',
;; `icicle-fit-completions-window', `icicle-fix-default-directory',
;; `icicle-flat-list', `icicle-flx-score-greater-p',
;; `icicle-fn-doc-minus-sig', `icicle-frame-iconified-p',
;; `icicle-frame-invisible-p', `icicle-frame-name-history',
;; `icicle-frames-on', `icicle-frame-splittable-p',
;; `icicle-frame-thumbnail-p', `icicle-frame-unsplittable-p',
;; `icicle-function-name-history', `icicle-fuzzy-candidates',
;; `icicle-get-alist-candidate',
;; `icicle-get-anything-actions-for-type',
;; `icicle-get-anything-cached-candidates',
;; `icicle-get-anything-candidates',
;; `icicle-get-anything-candidates-of-type',
;; `icicle-get-anything-default-actions-for-type',
;; `icicle-get-anything-input-delay',
;; `icicle-get-anything-req-pat-chars',
;; `icicle-get-anything-types',
;; `icicle-get-candidates-from-saved-set', `icicle-get-safe',
;; `icicle-goto-marker-1', `icicle-goto-marker-1-action',
;; `icicle-group-regexp', `icicle-dired-guess-shell-command',
;; `icicle-handle-default-for-prompt',
;; `icicle-help-on-candidate-symbol', `icicle-help-line-buffer',
;; `icicle-help-line-file', `icicle-help-string-completion',
;; `icicle-hide/show-comments-1',
;; `icicle-highlight-candidate-in-Completions',
;; `icicle-highlight-complete-input',
;; `icicle-highlight-initial-whitespace',
;; `icicle-highlight-input-noncompletion',
;; `icicle-highlight-input-noncompletion-rest',
;; `icicle-highlight-lighter', `icicle-historical-alphabetic-p',
;; `icicle-image-file-p', `icicle-imenu-command-p',
;; `icicle-imenu-help', `icicle-imenu-in-buffer-p',
;; `icicle-imenu-macro-p',
;; `icicle-imenu-non-interactive-function-p',
;; `icicle-increment-cand-nb+signal-end',
;; `icicle-Info-apropos-complete-match',
;; `icicle-Info-build-node-completions',
;; `icicle-Info-build-node-completions-1',
;; `icicle-Info-content-match', `icicle-Info-goto-node-1',
;; `icicle-Info-goto-node-action', `icicle-Info-index-action',
;; `icicle-Info-multi-read-node-name',
;; `icicle-Info-node-is-indexed-by-topic',
;; `icicle-Info-read-node-name',
;; `icicle-Info-read-node-of-content',
;; `icicle-input-from-minibuffer',
;; `icicle-input-is-a-completion-p', `icicle-insert-candidates',
;; `icicle-insert-candidate-action',
;; `icicle-insert-cand-in-minibuffer',
;; `icicle-insert-Completions-help-string', `icicle-insert-dot',
;; `icicle-insert-for-yank', `icicle-insert-input',
;; `icicle-insert-thesaurus-entry-cand-fn', `icicle-insert-thing',
;; `icicle-invisible-face-p', `icicle-invisible-p',
;; `icicle-isearch-complete-past-string',
;; `icicle-interesting-buffer-p', `icicle-join-nth-parts',
;; `icicle-kbd', `icicle-keep/remove-buffer-cands-for-visible',
;; `icicle-key-description', `icicle-keys+cmds-w-prefix',
;; `icicle-kill-a-buffer',
;; `icicle-kill-a-buffer-and-update-completions',
;; `icicle-kmacro-action', `icicle-last-non-minibuffer-buffer',
;; `icicle-latest-access-first-p', `icicle-latest-input-first-p',
;; `icicle-latest-modification-first-p',
;; `icicle-latest-use-first-p', `icicle-levenshtein-match',
;; `icicle-levenshtein-one-match', `icicle-levenshtein-one-regexp',
;; `icicle-levenshtein-strict-match',
;; `icicle-lisp-completion-at-point', `icicle-list-position',
;; `icicle-load-library', `icicle-local-keys-first-p',
;; `icicle-locate-file-no-search-1',
;; `icicle-locate-file-of-content-1', `icicle-looking-at-p',
;; `icicle-looks-like-dir-name-p', `icicle-lru-window-for-buffer',
;; `icicle-major-mode-name-less-p',
;; `icicle-make-bookmark-candidate', `icicle-make-char-candidate'
;; (Emacs 23-25), `icicle-make-color-candidate',
;; `icicle-make-face-candidate', `icicle-make-frame-alist',
;; `icicle-make-plain-predicate', `icicle-make-window-alist',
;; `icicle-map', `icicle-markers', `icicle-markers-to-readable',
;; `icicle-marker+text',
;; `icicle-maybe-multi-completion-completing-p',
;; `icicle-maybe-sort-and-strip-candidates',
;; `icicle-maybe-sort-maybe-truncate', `icicle-mctize-all',
;; `icicle-mctized-display-candidate',
;; `icicle-mctized-full-candidate',
;; `icicle-merge-saved-order-less-p',
;; `icicle-minibuffer-default-add-completions',
;; `icicle-minibuf-input', `icicle-minibuf-input-sans-dir',
;; `icicle-minibuffer-prompt-end', `icicle-minibuffer-setup',
;; `icicle-mode-line-name-less-p',
;; `icicle-mouse-candidate-action-1', `icicle-mouseover-help',
;; `icicle-mru-window-for-buffer',
;; `icicle-msg-maybe-in-minibuffer', `icicle-ms-windows-NET-USE',
;; `icicle-multi-comp-apropos-complete-match', `icicle-multi-sort',
;; `icicle-buffer-narrowing-action', `icicle-nb-Completions-cols',
;; `icicle-nb-of-cand-at-Completions-pos',
;; `icicle-nb-of-cand-in-Completions-horiz',
;; `icicle-next-candidate', `icicle-next-error-buffer-p',
;; `icicle-next-single-char-property-change',
;; `icicle-next-visible-thing-1', `icicle-next-visible-thing-2',
;; `icicle-next-visible-thing-and-bounds',
;; `icicle-next-window-for-display-buffer',
;; `icicle-non-whitespace-string-p',
;; `icicle-not-basic-prefix-completion-p',
;; `icicle-not-special-candidate-p',
;; `icicle-ORIG-choose-completion-string',
;; `icicle-ORIG-completing-read',
;; `icicle-ORIG-completing-read-multiple',
;; `icicle-ORIG-completion-setup-function',
;; `icicle-ORIG-dired-smart-shell-command',
;; `icicle-ORIG-display-completion-list',
;; `icicle-ORIG-face-valid-attribute-values',
;; `icicle-ORIG-minibuffer-default-add-completions',
;; `icicle-ORIG-read-char-by-name' (Emacs 23-25),
;; `icicle-ORIG-read-color', `icicle-ORIG-read-face-name',
;; `icicle-ORIG-read-from-minibuffer', `icicle-ORIG-read-number',
;; `icicle-ORIG-read-string', `icicle-ORIG-shell-command',
;; `icicle-ORIG-shell-command-on-region',
;; `icicle-ORIG-widget-color-complete',
;; `icicle-package-built-in-p', `icicle-package-disabled-p',
;; `icicle-package-installed-p', `icicle-part-1-cdr-lessp',
;; `icicle-part-1-lessp', `icicle-part-2-lessp',
;; `icicle-part-3-lessp', `icicle-part-4-lessp',
;; `icicle-part-N-lessp', `icicle-pick-color-by-name-1',
;; `icicle-pick-color-by-name-action', `icicle-place-cursor',
;; `icicle-place-overlay', `icicle-position',
;; `icicle-prefix-any-candidates-p',
;; `icicle-prefix-any-file-name-candidates-p',
;; `icicle-prefix-candidates', `icicle-prefix-complete-1',
;; `icicle-prefix-complete-2', `icicle-prefix-keys-first-p',
;; `icicle-previous-single-char-property-change',
;; `icicle-propertize', `icicle-proxy-candidate-first-p',
;; `icicle-put-at-head', `icicle-put-whole-cand-prop',
;; `icicle-quote-file-name-part-of-cmd',
;; `icicle-raise-Completions-frame', `icicle-readable-to-markers',
;; `icicle-read-args-w-val-satisfying', `icicle-read-char-by-name'
;; (Emacs 23-25), `icicle-read-args-for-set-completion-methods',
;; `icicle-read-char-exclusive',
;; `icicle-read-char-maybe-completing' (Emacs 23-25),
;; `icicle-read-choose-window-args', `icicle-read-face-name',
;; `icicle-read-file-name', `icicle-read-file-name-default',
;; `icicle-read-from-minibuffer',
;; `icicle-read-from-minibuf-nil-default', `icicle-read-number',
;; `icicle-read-regexp', `icicle-read-shell-command',
;; `icicle-read-shell-command-completing', `icicle-read-string',
;; `icicle-read-string-completing',
;; `icicle-read-var-value-satisfying', `icicle-rebind-global',
;; `icicle-recent-file-of-content-1',
;; `icicle-recent-files-without-buffers.',
;; `icicle-recentf-include-p', `icicle-recentf-keep-p',
;; `icicle-recentf-make-menu-items', `icicle-recompute-candidates',
;; `icicle-redefine-standard-functions',
;; `icicle-redefine-standard-options',
;; `icicle-redefine-std-completion-fns',
;; `icicle-region-or-buffer-limits', `icicle-remap',
;; `icicle-remove-buffer-candidate-action',
;; `icicle-remove-buffer-config-action',
;; `icicle-remove-cand-from-lists',
;; `icicle-remove-candidate-display-others',
;; `icicle-remove-color-duplicates', `icicle-remove-dots',
;; `icicle-remove-duplicates', `icicle-remove-dups-if-extras',
;; `icicle-remove-from-recentf-candidate-action',
;; `icicle-remove-if', `icicle-remove-if-not',
;; `icicle-remove-property', `icicle-replace-mct-cand-in-mct',
;; `icicle-remove-saved-set-action', `icicle-repeat-command',
;; `icicle-repeat-complex-command--called-interactively-skip',
;; `icicle-replace-input-w-parent-dir', `icicle-require-match-p',
;; `icicle-restore-completion-keys',
;; `icicle-restore-custom-minibuffer-keys',
;; `icicle-restore-other-keymap-keys',
;; `icicle-restore-region-face',
;; `icicle-restore-standard-commands',
;; `icicle-restore-standard-options',
;; `icicle-restore-std-completion-fns',
;; `icicle-retrieve-candidates-from-set', `icicle-reversible-sort',
;; `icicle-row-wise-cand-nb',
;; `icicle-run-icicle-post-command-hook',
;; `icicle-run-icicle-pre-command-hook',
;; `icicle-same-vector-keyseq-p', `icicle-saved-fileset-p',
;; `icicle-save-or-restore-input', `icicle-save-raw-input',
;; `icicle-scatter', `icicle-scatter-match',
;; `icicle-scroll-or-update-Completions', `icicle-search-action',
;; `icicle-search-action-1', `icicle-search-bookmark-action',
;; `icicle-search-char-property-scan',
;; `icicle-search-char-prop-matches-p',
;; `icicle-search-choose-buffers', `icicle-search-cleanup',
;; `icicle-search-define-candidates',
;; `icicle-search-define-candidates-1',
;; `icicle-search-dired-marked-recursive-1',
;; `icicle-search-file-found-p', `icicle-search-final-act',
;; `icicle-search-help',
;; `icicle-search-highlight-all-input-matches',
;; `icicle-search-highlight-and-maybe-replace',
;; `icicle-search-highlight-input-matches-here',
;; `icicle-search-in-context-default-fn',
;; `icicle-search-property-args',
;; `icicle-search-property-default-match-fn',
;; `icicle-search-quit-or-error',
;; `icicle-search-read-context-regexp', `icicle-search-read-word',
;; `icicle-search-regexp-scan',
;; `icicle-search-replace-all-search-hits',
;; `icicle-search-replace-cand-in-alist',
;; `icicle-search-replace-cand-in-mct',
;; `icicle-search-replace-fixed-case-p',
;; `icicle-search-replace-match', `icicle-search-thing-args',
;; `icicle-search-thing-scan', `icicle-search-where-arg',
;; `icicle-select-minibuffer-contents' `icicle-select-zone-action',
;; `icicle-set-calling-cmd',
;; `icicle-set-completion-methods-for-command',
;; `icicle-set-difference', `icicle-set-intersection',
;; `icicle-set-union', `icicle-shell-command-on-file',
;; `icicle-shell-dynamic-complete-as-command',
;; `icicle-shell-dynamic-complete-as-environment-variable',
;; `icicle-show-current-help-in-mode-line',
;; `icicle-show-help-in-mode-line', `icicle-show-in-mode-line',
;; `icicle-signum', `icicle-S-iso-lefttab-to-S-TAB',
;; `icicle-sit-for', `icicle-some', `icicle-SPC-scatter-match',
;; `icicle-SPC-scatter-re', `icicle-special-candidate-p',
;; `icicle-special-candidates-first-p', `icicle-special-display-p',
;; `icicle-special-variable-p', `icicle-split-input',
;; `icicle-start-of-candidates-in-Completions',
;; `icicle-string-after-p', `icicle-string-before-p',
;; `icicle-string-match-p', `icicle-strip-ignored-files-and-sort',
;; `icicle-subst-envvar-in-file-name',
;; `icicle-substring-no-properties', `icicle-substrings-of-length',
;; `icicle-substitute-keymap-vars', `icicle-successive-action',
;; `icicle-take', `icicle-thing-at-point', `icicle-things-alist',
;; `icicle-this-command-keys-prefix',
;; `icicle-toggle-icicle-mode-twice', `icicle-top-level-prep',
;; `icicle-transform-candidates',
;; `icicle-transform-multi-completion',
;; `icicle-transform-sole-candidate',
;; `icicle-transpose-chars-magic', `icicle-try-switch-buffer',
;; `icicle-ucs-names' (Emacs 23-25),
;; `icicle-unbind-buffer-candidate-keys',
;; `icicle-unbind-file-candidate-keys',
;; `icicle-unbind-isearch-keys',
;; `icicle-unbind-key-completion-keys-for-map-var',
;; `icicle-unbind-key-completion-keys-in-keymaps-from',
;; `icicle-undo-std-completion-faces',
;; `icicle-unhighlight-lighter', `icicle-unlist', `icicle-unmap',
;; `icicle-unpropertize-completion',
;; `icicle-unsorted-apropos-candidates',
;; `icicle-unsorted-file-name-apropos-candidates',
;; `icicle-unsorted-file-name-prefix-candidates',
;; `icicle-unsorted-prefix-candidates',
;; `icicle-universal-argument--mode' (Emacs 24.4+),
;; `icicle-upcase', `icicle-upcase-if-ignore-case',
;; `icicle-update-and-next', `icicle-update-f-l-keywords',
;; `icicle-update-ignored-extensions-regexp',
;; `icicle-value-satisfies-type-p', `icicle-var-inherits-type-p',
;; `icicle-var-is-of-type-p', `icicle-var-matches-type-p',
;; `icicle-var-val-satisfies-type-p',
;; `icicle-visit-marked-file-of-content-1',
;; `icicle-widget-color-complete', `icicle-widgetp',
;; `icicle-window-at-bottom-p', `icicle-window-at-left-p',
;; `icicle-window-at-right-p', `icicle-window-at-top-p',
;; `icicle-window-dedicated-p', `icicle-window-deletable-p',
;; `icicle-window-invisible-p', `icicle-WYSIWYG-font'.
;;
;; Internal variables and constants defined in Icicles:
;;
;; `icicle-abs-file-candidates', `icicle-acting-on-next/prev',
;; `icicle-active-map', `icicle-advice-info-list',
;; `icicle-all-candidates-action',
;; `icicle-all-candidates-list-action-fn',
;; `icicle-all-candidates-list-alt-action-fn',
;; `icicle-allowed-sort-predicate', `icicle-anychar-regexp',
;; `icicle-apply-nomsg', `icicle-apropos-complete-match-fn',
;; `icicle-apropos-value-last-initial-cand-set',
;; `icicle-auto-complete-key-idle-timer',
;; `icicle-auto-no-icomplete-mode-p', `icicle-auto-no-sort-p',
;; `icicle-bookmark-history', `icicle-bookmark-list-names-only-p',
;; `icicle-bookmark-menu-map', `icicle-bookmark-types',
;; `icicle-buffer-config-history', `icicle-buffer-name-input-p',
;; `icicle-bufflist', `icicle-candidate-action-fn',
;; `icicle-candidate-alt-action-fn', `icicle-candidate-entry-fn',
;; `icicle-candidate-help-fn', `icicle-candidate-nb',
;; `icicle-candidate-properties-alist', `icicle-candidates-alist',
;; `icicle-cands-to-narrow', `icicle-char-property-value-history',
;; `icicle-cmd-calling-for-completion', `icicle-cmd-reading-input',
;; `icicle-color-history', `icicle-color-theme-history',
;; `icicle-command-abbrev-history', `icicle-commands-for-abbrev',
;; `icicle-common-match-string',
;; `icicle-comp-base-is-default-dir-p',
;; `icicle-complete-input-overlay', `icicle-complete-keys-alist',
;; `icicle-completing-p',
;; `icicle-completing-read+insert-candidates',
;; `icicle-completion-candidates', `icicle-completion-map-vars',
;; `icicle-completion-prompt-overlay',
;; `icicle-completion-set-history',
;; `icicle-Completions-misc-submenu',
;; `icicle-Completions-save/retrieve-submenu',
;; `icicle-Completions-sets-submenu',
;; `icicle-Completions-sorting-submenu',
;; `icicle-completion-style-set',
;; `icicle-Completions-this-candidate-submenu',
;; `icicle-Completions-toggle-submenu',
;; `icicle-compute-narrowing-regexp-p',
;; `icicle-confirm-exit-commands',
;; `icicle-crm-local-completion-map',
;; `icicle-crm-local-must-match-map',
;; `icicle-current-completion-candidate-overlay',
;; `icicle-current-completion-mode',
;; `icicle-current-font-lock-part', `icicle-current-input',
;; `icicle-current-raw-input', `icicle-current-TAB-method',
;; `icicle-custom-menu-map', `icicle-cycling-p',
;; `icicle-default-thing-insertion-flipped-p',
;; `icicle-delete-candidate-object', `icicle-describe-menu-map',
;; `icicle-dictionary-history', `icicle-dir-candidate-can-exit-p',
;; `icicle-dirs-done', `icicle-doc-last-initial-cand-set',
;; `icicle-dot-string-internal', `icicle-edit-menu-map',
;; `icicle-edit-update-p', `icicle-ess-use-ido',
;; `icicle-exclude-default-proxies', `icicle-existing-bufs',
;; `icicle-explore-final-choice',
;; `icicle-explore-final-choice-full', `icicle-extra-candidates',
;; `icicle-extra-candidates-dir-insert-p',
;; `icicle-face-name-history', `icicle-face-remapping-Completions',
;; `icicle-face-remapping-region', `icicle-fancy-candidates-p',
;; `icicle-fancy-cands-internal-p', `icicle-ffap-max-region-size',
;; `icicle-file-menu-map', `icicle-file-name-completion-table',
;; `icicle-files', `icicle-filtered-default-value',
;; `icicle-find-file-abs-action-fn', `icicle-find-file-action-fn',
;; `icicle-font-name-history', `icicle-frame-alist',
;; `icicle-frame-name-history', `icicle-frames-menu-map',
;; `icicle-full-cand-fn', `icicle-function-name-history',
;; `icicle-fundoc-last-initial-cand-set',
;; `icicle-general-help-string',
;; `icicle-get-alist-candidate-function',
;; `icicle-goto-imenu-menu-map', `icicle-goto-menu-map',
;; `icicle-hist-cands-no-highlight', `icicle-hist-var',
;; `icicle-ignored-extensions', `icicle-ignored-extensions-regexp',
;; `icicle-incremental-completion-p', `icicle-info-buff',
;; `icicle-Info-index-cache', `icicle-info-menu-map',
;; `icicle-Info-only-rest-of-book-p', `icicle-Info-tag-table-posn',
;; `icicle-info-window', `icicle-inhibit-sort-p',
;; `icicle-inhibit-try-switch-buffer', `icicle-initial-value',
;; `icicle-input-completion-fail-overlay', `icicle-input-fail-pos',
;; `icicle-insert-string-at-pt-end',
;; `icicle-insert-string-at-pt-start',
;; `icicle-interactive-history', `icicle-izones-var',
;; `icicle-key-prefix', `icicle-key-prefix-2',
;; `icicle-key-prefix-description', `icicle-kill-history',
;; `icicle-kmacro-alist', `icicle-kmacro-history',
;; `icicle-last-apropos-complete-match-fn',
;; `icicle-last-completion-candidate',
;; `icicle-last-completion-command',
;; `icicle-last-icomplete-mode-value', `icicle-last-input',
;; `icicle-last-sort-comparer', `icicle-last-top-level-command',
;; `icicle-last-transform-function', `icicle-last-thing-type',
;; `icicle-locate-file-no-symlinks-p',
;; `icicle-locate-file-use-locate-p', `icicle-lighter-truncation',
;; `icicle-list-use-nth-parts', `icicle-menu-map',
;; `icicle-minibuf-act-on-all-menu-map',
;; `icicle-minibuf-candidate-set-menu-map',
;; `icicle-minibuf-edit-menu-map' `icicle-minibuffer-message-ok-p',
;; `icicle-minibuf-history-menu-map',
;; `icicle-minibuf-save-retrieve-menu-map',
;; `icicle-minor-mode-map-entry', `icicle-mode-line-help',
;; `icicle-mode-map', `icicle-ms-windows-drive-hash',
;; `icicle-multi-completing-p', `icicle-multi-inputs-action-fn',
;; `icicle-must-match-regexp', `icicle-must-not-match-regexp',
;; `icicle-must-pass-after-match-predicate',
;; `icicle-must-pass-predicate', `icicle-named-colors',
;; `icicle-narrow-regexp',
;; `icicle-nb-candidates-before-truncation',
;; `icicle-nb-of-other-cycle-candidates',
;; `icicle-new-bufs-to-keep', `icicle-new-bufs-to-kill',
;; `icicle-new-last-cmd', `icicle-next-apropos-complete-cycles-p',
;; `icicle-next-prefix-complete-cycles-p',
;; `icicle-options-menu-map', `icicle-options-choose-menu-map',
;; `icicle-options-toggle-menu-map', `icicle-orig-buff',
;; `icicle-ORIG-crm-local-completion-map',
;; `icicle-ORIG-crm-local-must-match-map',
;; `icicle-orig-extra-cands', `icicle-orig-font',
;; `icicle-orig-font-lock-keywords', `icicle-orig-frame',
;; `icicle-orig-menu-bar',
;; `icicle-orig-minibuffer-completion-pred',
;; `icicle-orig-minibuffer-completion-table',
;; `icicle-orig-must-match-regexp',
;; `icicle-orig-must-not-match-regexp',
;; `icicle-orig-must-pass-after-match-pred',
;; `icicle-orig-must-pass-predicate', `icicle-orig-pixelsize',
;; `icicle-orig-pointsize', `icicle-orig-pt-explore',
;; `icicle-orig-read-file-name-fn',
;; `icicle-orig-show-initially-flag',
;; `icicle-orig-sort-orders-alist', `icicle-orig-window',
;; `icicle-other-window', `icicle-path-variables',
;; `icicle-plist-last-initial-cand-set',
;; `icicle-pre-minibuffer-buffer', `icicle-post-command-hook',
;; `icicle-pre-command-hook', `icicle-predicate-types-alist',
;; `icicle-previous-raw-file-name-inputs',
;; `icicle-previous-raw-non-file-name-inputs',
;; `icicle-progressive-completing-p', `icicle-prompt',
;; `icicle-proxy-candidate-regexp', `icicle-proxy-candidates',
;; `icicle-read-expression-map', `icicle-read-char-history' (Emacs
;; 23-25), `icicle-remove-icicles-props-p', `icicle-re-no-dot',
;; `icicle-require-match-p', `icicle-reverse-multi-sort-p',
;; `icicle-reverse-sort-p', `icicle-saved-candidate-overlays',
;; `icicle-saved-candidates-variables-obarray',
;; `icicle-saved-completion-candidate',
;; `icicle-saved-completion-candidates',
;; `icicle-saved-completion-candidates-internal',
;; `icicle-saved-ignored-extensions',
;; `icicle-saved-kmacro-ring-max', `icicle-saved-proxy-candidates',
;; `icicle-saved-regexp-search-ring-max',
;; `icicle-saved-region-background',
;; `icicle-saved-search-ring-max',
;; `icicle-scroll-Completions-reverse-p', `icicle-search-command',
;; `icicle-search-complement-domain-p',
;; `icicle-search-context-level', `icicle-search-context-regexp',
;; `icicle-search-current-overlay', `icicle-search-final-choice',
;; `icicle-search-history', `icicle-search-in-context-fn',
;; `icicle-searching-p', `icicle-search-regexp',
;; `icicle-search-level-overlays', `icicle-search-map',
;; `icicle-search-modes', `icicle-search-menu-map',
;; `icicle-search-tags-menu-map', `icicle-search-overlays',
;; `icicle-search-refined-overlays', `icicle-search-replacement',
;; `icicle-search-replacement-history',
;; `icicle-successive-grab-count',
;; `icicle-text-property-value-history',
;; `icicle-thing-at-pt-fns-pointer', `icicle-this-cmd-keys',
;; `icicle-toggle-map', `icicle-toggle-transforming-message',
;; `icicle-transform-before-sort-p', `icicle-transform-function',
;; `icicle-universal-argument-map',
;; `icicle-vardoc-last-initial-cand-set',
;; `icicle-variable-name-history', `icicle-vmfoc-other-win-p',
;; `icicle-vmfoc-recursive-p',
;; `icicle-whole-candidate-as-text-prop-p',
;; `lacarte-menu-items-alist'.
from orderless.
Ouch, right. But the issue can easily be avoided by the same approach as before - simply define derived completion styles for each category.
I don't really understand what that means? Usually checking for the category isn't a problem but I remember there was a problem with the preview feature as it does run outside the minibuffer right?
from orderless.
I don't really understand what that means? Usually checking for the category isn't a problem but I remember there was a problem with the preview feature as it does run outside the minibuffer right?
The completion style is not allowed to access the current completion category. This means we cannot dispatch within the completion style based on the completion category. The solution to this problem is to define multiple completion styles which are then dispatched to based on the category, e.g. orderless-file, orderless-buffer etc. These derived orderless styles can be registered in completion-category-overrides/defaults.
from orderless.
I think "it is not allowed" puts it a bit strongly, this is Emacs ;) Usually it would be reasonable to assume that you can check for it even though it isn't part of the interface. But I agree that it isn't technically correct and it is safer and robust to use the approach you suggested, so all good :) Thanks for the explanation!
from orderless.
Another option is to not dispatch here on anything. There could be a single orderless-extra-data
variable pointing to a function, and callers of completing-read
could just let
-bind or setq-local
it to the appropriate thing
We could allow the orderless-extra-data
function to return a string or buffer to match against, or to return a predicate that can do whatever it wants.
Maybe we should treat matching against strings and buffers specially, and have separate orderless-extra-text
and orderless-extra-predicate
variables.
(All of these names are placeholders, I'd think more about good names before using these.)
from orderless.
Okay and one could then also add a function to minibuffer-setup-hook
which could automatically set this orderless variable according to the current completion category.
from orderless.
Another option is to not dispatch here on anything. There could be a single orderless-extra-data variable pointing to a function, and callers of completing-read could just let-bind or setq-local it to the appropriate thing
Oh, no. Let's not do that. This way we introduce again a coupling. I want this feature to work for existing commands. It should work as well for consult-buffer as for switch-to-buffer etc.
The way of deriving completion styles specific to the category with the appropriate metadata matching functions/predicates is a good design. It fits well with how Emacs handles these completion styles itself. It is acceptable to have extra completion styles per category. And it also fits with the rest of the packages which do everything based on the category.
from orderless.
@minad If you let users add a function to their setup hook which sets this variable based on the category it would still work automatically.
from orderless.
Okay as long as we keep everything decoupled and add the metadata matching after the fact for existing commands I am fine with it. You propose that the user should sets a global minibuffer-setup-hook?
from orderless.
That is the idea, but using completion-category-overrides
also sounds like a viable approach to me.
from orderless.
I wonder if some predefined matchers should be supplied then, similar to how Embark and Marginalia define their additions for the categories - as part of orderless or as part of another package?
from orderless.
See minad/consult#200, where @juliocc proposed a custom consult-buffer source for showing a subset of buffers. I assume for such use cases it would also be very valuable to have the filtering of buffer sets on the level of orderless/completion-style via a predicate as discussed in this issue.
from orderless.
I played a bit around with how such a feature should be implemented and I came to the conclusion that metadata filtering is out of scope for Orderless. Orderless is such a well-written and narrowly focused package, it should keep it focus.
Here is a small prototype. One can write for example @mode=emacs
or @on
. Maybe I should package that up at some point. But I am not yet entirely sure if I would actually want to use it. The feature to search through documentations has come up a few times in the context of Marginalia. And in combination with Embark completion is power up to a full file/buffer manager.
;; -*- lexical-binding: t -*-
;; completion query
(defun cq-buffer-content (x y _metadata)
(or (string-blank-p y)
(when-let (buf (get-buffer x))
(with-current-buffer buf
(save-excursion
(save-restriction
(widen)
(goto-char (point-min))
(ignore-errors (search-forward-regexp y nil 'noerror))))))))
(defun cq-buffer-mode (x y _metadata)
(or (string-blank-p y)
(when-let (buf (get-buffer x))
(string-match-p y (symbol-name (buffer-local-value 'major-mode buf))))))
(defun cq-documentation (x y _metadata)
(or (string-blank-p y)
(ignore-errors (string-match-p y (documentation (intern-soft x))))))
(defun cq-annotation (x y metadata)
(when-let* ((ann (completion-metadata-get metadata 'annotation-function))
(str (funcall ann x)))
(string-match-p y str)))
(defun cq-mode-on (x _ _metadata)
(when-let (sym (intern-soft x))
(and (boundp sym) (memq sym minor-mode-list) (symbol-value sym))))
(defun cq-mode-off (x _ _metadata)
(when-let (sym (intern-soft x))
(and (boundp sym) (memq sym minor-mode-list) (not (symbol-value sym)))))
(defun cq-command-key (x _ _metadata)
(when-let (sym (intern-soft x))
(and (fboundp sym) (where-is-internal sym))))
(defvar cq-queries
'((buffer (mode . cq-buffer-mode)
(content . cq-buffer-content)
(ann . cq-annotation)
(?* . cq-buffer-mode)
(?@ . cq-buffer-content))
(command (doc . cq-documentation)
(ann . cq-annotation)
(key . cq-command-key)
(on . cq-mode-on)
(off . cq-mode-on))))
(defun cq-completion-all-completions (orig str table pred _point &optional metadata)
(let ((filter))
(setq str
(replace-regexp-in-string "@[^ ]*" (lambda (x)
(setq x (substring x 1))
(unless (string-blank-p x)
(push x filter))
"")
str))
;; TODO correct point computation
(when-let* ((result (funcall orig str table pred (length str) metadata))
(cat (completion-metadata-get metadata 'category)))
(when-let (queries (and filter
(or (alist-get cat cq-queries)
(and (eq cat 'consult-multi)
(apply #'append (mapcar #'cdr cq-queries))))))
(let* ((last (last result))
(base (cdr last)))
(setcdr last nil)
(setq result (seq-filter (lambda (x)
(when (eq cat 'consult-multi)
(setq x (cdr (get-text-property 0 'consult-multi x))))
(not (seq-find
(lambda (f)
(or
(when-let* ((pos (or (string-match-p "=" f) (length f)))
(key (intern-soft (substring f 0 pos)))
(fun (alist-get key queries)))
(not (funcall fun x (if (< pos (length f)) (substring f (1+ pos)) "") metadata)))
(when-let (fun (alist-get (aref f 0) queries))
(not (funcall fun x (substring f 1) metadata)))))
filter)))
result))
(when result
(setq result (nconc result base)))))
result)))
(advice-add #'completion-all-completions :around #'cq-completion-all-completions)
from orderless.
Related Issues (20)
- How to disable orderless for company or corfu HOT 8
- Get file basename? HOT 19
- Use company, orderless, company-fuzzy, auctex, and ispell all together. HOT 6
- Orderless doesn't work as desired. HOT 2
- Case sensitive matching HOT 4
- Add `orderless-limit` customizable variable HOT 8
- orderless and directories HOT 4
- Full matched candidate is often not the first one HOT 3
- Debugger entered--Lisp error: (error "rx `not' syntax error: 101") HOT 4
- Possible conflict between orderless and AUCTeX HOT 28
- Orderless matches all TRAMP methods HOT 23
- Orderless with vertico cannot case-insensitively search files by default HOT 2
- Keybinding to switch between smart and strict case HOT 1
- GitHub-rendered readme is "Style dispatchers" section is misleading/hard to read HOT 3
- cannot rename with orderless HOT 1
- Warning: Value for ‘orderless-matching-styles’ does not match type hook HOT 2
- Quickly exclude several types of candidates HOT 3
- Case insensitivity not working for Upper case. HOT 2
- [FR] Add option for find-file to match only file name. HOT 7
- [Q] How do I use `orderless-style-dispatchers` with `ivy`? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orderless.