unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Klaus Berndl <klaus.berndl@sdm.de>
Subject: Re: Question to completion
Date: 08 Nov 2003 15:14:52 +0100	[thread overview]
Message-ID: <uoevnvter.fsf@sdm.de> (raw)
In-Reply-To: usmkzvx8p.fsf@sdm.de


Until now i have written a first solution which does what i want:

(defun offer-some-choices ()
  (interactive)
  ;; With these 3 TAB-events we ensure that
  ;; 1. The longest possible common substring is display in the minibuffer
  ;; 2. All possible completions are displayed
  (setq unread-command-events (cons 9 unread-command-events))
  (setq unread-command-events (cons 9 unread-command-events))
  (setq unread-command-events (cons 9 unread-command-events))
  (let ((file (completing-read
               "Select a file: "
               '(("c:/Programme/emacs-21/site-lisp/semantic/semanticdb-test.el" . t)
                 ("c:/Programme/emacs-21/site-lisp/ecb-navigate.el" . t)))))
    (message "Choosen file: %s" file)))

Now my question: Is this completely an ugly hack and what to do to write this
better?

Thanks for help,
Klaus

On 08 Nov 2003, Klaus Berndl wrote:

>  
>  Suppose i have s command like follows:
>  
>  (defun offer-some-choices ()
>    (interactive)
>    (completing-read "Select a name: " '(("Klaus" . t) ("Berndl" . t))))
>  
>  Then this displays in the minibuffer "Select a name: " and then wait for
>  input from the user.
>  
>  How can i achieve that always - *without* the user has to hit TAB - the
>  possible completions are displayed immediately? Or with other words: How to
>  simulate that the user has already pressed TAB as often as necessary to
>  display all possible completions? Best would be if the longest common
>  substring of all possible completions is displayed immediately in the
>  minibuffer (OK, this i could precompute with `try-completion' and then
>  insert as argument INITIAL-INPUT - but AFAIK this is deprecated?!).
>  
>  But most important is that the user has not to hit any key to see all
>  possible completions. How to do this with completing-read - or is there a
>  better way to do this?
>  
>  What i want is to (mis?)use the completion-feature of Emacs to offer the
>  user some choices which he can select either via mouse or via keyboard from
>  the minibuffer.
>  
>  Thanks a lot in advance!
>  Klaus

-- 
Klaus Berndl			mailto: klaus.berndl@sdm.de
sd&m AG				http://www.sdm.de
software design & management	
Carl-Wery-Str. 42, 81739 Muenchen, Germany
Tel +49 89 63812-392, Fax -220

  reply	other threads:[~2003-11-08 14:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-08 12:52 Question to completion Klaus Berndl
2003-11-08 14:14 ` Klaus Berndl [this message]
2003-11-09 14:36 ` Ehud Karni
     [not found] ` <mailman.73.1068392321.2005.help-gnu-emacs@gnu.org>
2003-11-09 17:21   ` Klaus Berndl
2003-11-10 16:20   ` Stefan Monnier
2003-11-09 19:04 ` jan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=uoevnvter.fsf@sdm.de \
    --to=klaus.berndl@sdm.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).