emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [External] : Re: Updating *Completions* as you type


From: Drew Adams
Subject: RE: [External] : Re: Updating *Completions* as you type
Date: Mon, 16 Oct 2023 03:16:46 +0000

FWIW:

I'll mention some similar features in Icicles.  They
were introduced together from the outset (in 2005!),
and have proven useful.

Such features really should be flexible - in no way
hard-coded.  Flexible for use interactively and with 
Lisp.  Don't just look for a good compromise 
behavior - do that for the default behavior, sure.
But let users easily switch behaviors on the fly.
And let Lisp code easily choose different default
(i.e., initial) behaviors for different 
contexts/commands.

> I don't want to automatically open the *Completions*
> buffer, just auto-update after it's open.  Deciding
> when to open *Completions* is the responsibility of
> completion-auto-help and other such options.

Icicles introduced incremental *Completions*-display
updating, providing these options to let users and code
easily control the behavior:

1. `icicle-incremental-completion':

   * `t'  : Update *Completions* incrementally only if 
            it's already displayed.  (Default.)
   * `nil': Don't update *Completions* incrementally.
   * other: Show *Completions* if not shown (+ update).

   `C-#' in the minibuffer cycles the values, so you
   can change the behavior on the fly.

   Some commands, such as those for navigation/search
   choices or those effectively providing multiple-choice
   menus, may want to bind the var to `always', to show
   you what's available at the outset, i.e., the full
   completion domain.

   A command that has many potential candidates (domain)
   might want to bind `icicle-incremental-completion' to
   `nil' at the outset if their display is too costly.

(You can always use `C-#' to
   change.)

2. `icicle-show-Completions-initially-flag':

   Non-nil: Show `*Completions*' even without user input.

> > - If there are a lot of completions, the completions
> >   buffer can take a while to update...

These options help with that:

3. `icicle-incremental-completion-threshold':

   When there are more than this many completions then
   wait (see next) before updating *Completions*.

4. `icicle-incremental-completion-delay':

   Seconds to wait before updating *Completions*, if
   there are currently more matching candidates than
   `icicle-incremental-completion-threshold'.

5. `icicle-max-candidates':

   Non-nil means show at most this many candidates
   in *Completions*.
___

https://www.emacswiki.org/emacs/Icicles_-_Icompletion#IncrementalCompletion

reply via email to

[Prev in Thread] Current Thread [Next in Thread]