unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Vitalie Spinu <spinuvit@gmail.com>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: Completion with (:exclusive 'no) is called twice, and doesn't pass over on sole completion.
Date: Fri, 16 Mar 2012 20:33:23 +0100	[thread overview]
Message-ID: <87sjh8wdbw.fsf@gmail.com> (raw)
In-Reply-To: <jwv7gyklb5a.fsf-monnier+emacs@gnu.org> (Stefan Monnier's message of "Fri, 16 Mar 2012 13:20:19 -0400")

>>>> Stefan Monnier <monnier@iro.umontreal.ca>
>>>> on Fri, 16 Mar 2012 13:20:19 -0400 wrote:

  >> Place your point at the end of 'aaaa and you try to complete. I am
  >> getting 

  >> aaa:
  >> aaaa:

  >> in my message buffer.  Which means the completion is called twice.

  > Not sure why, but not terribly problematic either.

Right, unless the completion retrieval is computationally
intensive. Please see my other message with a more serious related
issue. It might give some clues.

  >> I hope this is not an intended behavior, as it might seriously
  >> interfere with custom completion.  For example I might want to have
  >> a different behavior on the second consequent invocation of the
  >> completion (give a message, modify the candidates etc).

  > No, completion-at-point-functions should return completion data and
  > can't know what that data will be used for.  Could be for TAB
  > completion, for on-the-fly popup completion à la auto-complete, for
  > display of the *Completions* buffer, or to decide whether we're still in
  > the same completion field (so as to pop-down the *Completions* buffer
  > when we leave that field), ...

In my case it's meaningful, as I retrieve completions from a
process. And if there is no process associated with a buffer, I want to
message: "Dude stop pressing TAB, there is no proc!!""

Also I think, popup functions should use a different list (like
completion-popup-functions). As users might want to use different sets
of completions. Also popup completions *must* be considerably less
computationally intensive, so it's probably a different set of functions
anyhow.

  >> Second problem is that if the completion is sole, the handling is not
  >> passed over.

  > That's expected: completion is only passed over if the text doesn't
  > match any candidate.

IMHO, this is far form an ideal default. Take an example of two
completions, one for symbols, another for functions. Or, even the etags
completion which is always the last, and might give many more candidates
with the same prefix.

Best, 
Vitalie.



  reply	other threads:[~2012-03-16 19:33 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-16 11:05 Completion with (:exclusive 'no) is called twice, and doesn't pass over on sole completion Vitalie Spinu
2012-03-16 12:18 ` Vitalie Spinu
2012-03-16 17:20 ` Stefan Monnier
2012-03-16 19:33   ` Vitalie Spinu [this message]
2012-03-17 22:34     ` Stefan Monnier
2012-03-17 22:43       ` Lennart Borgman
2012-03-17 23:33       ` Vitalie Spinu
2012-03-18  2:03         ` Stefan Monnier
2012-03-18  9:35           ` Vitalie Spinu
2012-03-18 15:42             ` Stefan Monnier
2012-03-18 19:18               ` Vitalie Spinu
2012-03-19  0:53                 ` Stefan Monnier
2012-03-19  8:35                   ` Vitalie Spinu
2012-03-19 12:49                     ` Stefan Monnier

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=87sjh8wdbw.fsf@gmail.com \
    --to=spinuvit@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).