all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Tassilo Horn <tassilo@member.fsf.org>
Cc: emacs-orgmode@gnu.org, emacs-devel@gnu.org
Subject: Re: [O] Re: Completing with anything
Date: Wed, 04 May 2011 12:07:23 -0300	[thread overview]
Message-ID: <jwv8vumv7bm.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <sa3wrizpzpi.fsf@cigue.easter-eggs.fr> (Julien Danjou's message of "Tue, 12 Apr 2011 11:48:41 +0200")

>> Hmm... good point, doing it in completion-choices is not reliable, tho
>> using as completion table something like:
>> 
>> (lambda (string pred action)
>> (let ((res (complete-with-action action completion-choices string pred)))
>> (if (and (eq action nil)
>> (assq (if (eq res t) string res) <expansion-alist>))
>> (cdr (assq (if (eq res t) string res) <expansion-alist>))
>> res)))
>> 
>> should work OK for prefix completion, but that means using the expansion
>> "by hand" rather than via expand-abbrev, which may not be an option.

> Yeah. That does not looks like a simple/good option.
> As it stands, I guess the bbdb solution to return a function doing the
> replacement rather than trying to return a list and conform with the
> (current) way of doing completion is really simpler, unfortunately. :(

While taking a look at adding the necessary functionality to
minibuffer.el, I bumped into a problem:

If you complete "ni" to "nic" which is a valid alias and you also have
a "nicolas" alias, running expand-abbrev after the completion may not be
right since it will prevent you from getting to "nicolas".

Now, this is a minor problem.  But the more general case is when the
user has set completion-cycle-threshold so that completion happened via
cycling: the string after completion is a valid abbrev (presumably) but
calling expand-abbrev on it will interfere with the cycling in a big way
(the details of what will happen depend on the way cycling is
implemented and what kind of abbrevs we're talking about).

So at least cycling-completion seems fundamentally incompatible with
this idea of abbrev-expansion-after-completion, at least if you want to
allow arbitrarily complex abbrevs like skeletons.

Could you give me an idea of what kind of abbrevs the code should try
to accommodate?


        Stefan



WARNING: multiple messages have this Message-ID (diff)
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Tassilo Horn <tassilo@member.fsf.org>
Cc: emacs-orgmode@gnu.org, emacs-devel@gnu.org
Subject: Re: Re: Completing with anything
Date: Wed, 04 May 2011 12:07:23 -0300	[thread overview]
Message-ID: <jwv8vumv7bm.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <sa3wrizpzpi.fsf@cigue.easter-eggs.fr> (Julien Danjou's message of "Tue, 12 Apr 2011 11:48:41 +0200")

>> Hmm... good point, doing it in completion-choices is not reliable, tho
>> using as completion table something like:
>> 
>> (lambda (string pred action)
>> (let ((res (complete-with-action action completion-choices string pred)))
>> (if (and (eq action nil)
>> (assq (if (eq res t) string res) <expansion-alist>))
>> (cdr (assq (if (eq res t) string res) <expansion-alist>))
>> res)))
>> 
>> should work OK for prefix completion, but that means using the expansion
>> "by hand" rather than via expand-abbrev, which may not be an option.

> Yeah. That does not looks like a simple/good option.
> As it stands, I guess the bbdb solution to return a function doing the
> replacement rather than trying to return a list and conform with the
> (current) way of doing completion is really simpler, unfortunately. :(

While taking a look at adding the necessary functionality to
minibuffer.el, I bumped into a problem:

If you complete "ni" to "nic" which is a valid alias and you also have
a "nicolas" alias, running expand-abbrev after the completion may not be
right since it will prevent you from getting to "nicolas".

Now, this is a minor problem.  But the more general case is when the
user has set completion-cycle-threshold so that completion happened via
cycling: the string after completion is a valid abbrev (presumably) but
calling expand-abbrev on it will interfere with the cycling in a big way
(the details of what will happen depend on the way cycling is
implemented and what kind of abbrevs we're talking about).

So at least cycling-completion seems fundamentally incompatible with
this idea of abbrev-expansion-after-completion, at least if you want to
allow arbitrarily complex abbrevs like skeletons.

Could you give me an idea of what kind of abbrevs the code should try
to accommodate?


        Stefan

  reply	other threads:[~2011-05-04 15:07 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-09  9:02 Announcing org-contacts, a bbdb-like contact manager for Org Julien Danjou
2011-02-09 19:00 ` John Hendy
2011-02-09 20:04   ` Sébastien Vauban
2011-02-09 20:43     ` Julien Danjou
2011-02-09 21:10       ` Russell Adams
2011-02-09 21:25         ` Marcelo de Moraes Serpa
2011-02-09 20:42   ` Julien Danjou
2011-02-10 14:34     ` John Hendy
2011-02-10 14:42       ` Julien Danjou
2011-02-09 19:16 ` Tassilo Horn
2011-02-09 19:26 ` John Hendy
2011-02-10 13:39 ` Dan Griswold
2011-02-10 14:42   ` Julien Danjou
2011-02-10 14:45 ` Dan Davison
2011-02-10 14:56   ` Julien Danjou
2011-02-10 15:05     ` John Hendy
2011-02-10 15:08     ` Dan Davison
2011-02-10 15:26     ` Rodrigo Lazo
2011-02-10 16:30     ` Tassilo Horn
2011-02-10 16:56       ` Julien Danjou
2011-02-10 18:20         ` Stefan Monnier
2011-02-10 18:20           ` Stefan Monnier
2011-02-11 10:21           ` [Orgmode] " Tassilo Horn
2011-02-11 14:47             ` Stefan Monnier
2011-02-11 20:15               ` Tassilo Horn
2011-02-11 23:08                 ` Stefan Monnier
2011-02-12 18:37                   ` Tassilo Horn
2011-02-20 16:58                     ` Julien Danjou
2011-03-18 15:00                   ` Completing with anything (was: [Orgmode] Re: Announcing org-contacts, a bbdb-like contact manager for Org) Julien Danjou
2011-03-18 18:16                     ` Completing with anything Stefan Monnier
2011-03-21 11:23                       ` Julien Danjou
2011-03-21 12:51                         ` Tassilo Horn
2011-03-21 13:36                           ` Julien Danjou
2011-03-21 14:17                             ` Tassilo Horn
2011-03-21 16:27                             ` Stefan Monnier
2011-03-21 16:55                               ` Dimitri Fontaine
2011-03-21 17:04                               ` Julien Danjou
2011-03-21 22:00                                 ` Stefan Monnier
2011-03-22  3:01                                   ` Eric Abrahamsen
2011-03-22 14:13                                     ` Eric S Fraga
2011-03-22 15:02                                       ` Eric Abrahamsen
2011-03-23  9:45                                       ` Julien Danjou
2011-03-23 14:13                                         ` Eric S Fraga
2011-03-23 15:05                                           ` Julien Danjou
2011-03-23 16:03                                             ` Eric S Fraga
2011-03-24 20:15                                             ` Cian
2011-03-25 10:16                                               ` Julien Danjou
2011-03-26 22:06                                                 ` Michael Markert
2011-03-26 23:40                                                   ` Michael Markert
2011-04-09 12:13                                                     ` Julien Danjou
2011-04-09 13:54                                                       ` Michael Markert
2011-04-11  9:24                                                         ` Julien Danjou
2011-04-11  9:37                                                           ` Bastien
2011-04-11 13:42                                                             ` Michael Markert
2011-04-30 13:39                                                               ` Michael Markert
2011-05-03  8:09                                                     ` Julien Danjou
2011-03-22 10:00                                 ` Aankhen
2011-03-22 11:57                                   ` [O] " Tassilo Horn
2011-03-22 11:57                                     ` Tassilo Horn
2011-03-22 12:03                                     ` [O] " Julien Danjou
2011-03-22 12:03                                       ` Julien Danjou
2011-03-22 12:31                                       ` [O] " Tassilo Horn
2011-03-22 12:31                                         ` Tassilo Horn
2011-03-21 15:19                         ` Stefan Monnier
2011-03-21 15:54                           ` Julien Danjou
2011-04-09 15:11                             ` [O] " Julien Danjou
2011-04-09 15:11                               ` Julien Danjou
2011-04-10  4:03                               ` [O] " Stefan Monnier
2011-04-10  4:03                                 ` Stefan Monnier
2011-04-11  9:21                                 ` [O] " Julien Danjou
2011-04-11  9:21                                   ` Julien Danjou
2011-04-12  3:42                                   ` [O] " Stefan Monnier
2011-04-12  3:42                                     ` Stefan Monnier
2011-04-12  9:48                                     ` [O] " Julien Danjou
2011-04-12  9:48                                       ` Julien Danjou
2011-05-04 15:07                                       ` Stefan Monnier [this message]
2011-05-04 15:07                                         ` Stefan Monnier
2011-05-04 15:34                                         ` [O] " Julien Danjou
2011-05-04 15:34                                           ` Julien Danjou
2011-05-24  3:14                                           ` Stefan Monnier
2011-05-24  7:33                                             ` Julien Danjou
2011-05-24  9:16                                             ` Antoine Levitt
2011-05-24 12:47                                               ` Stefan Monnier
2011-05-24 13:18                                                 ` Antoine Levitt
2011-05-24 14:04                                                   ` Stefan Monnier
2011-05-24 14:05                                                   ` Stefan Monnier
2011-05-24 14:45                                                     ` Antoine Levitt
2011-05-24 18:05                                                   ` Stefan Monnier
2011-05-24 18:30                                                     ` Antoine Levitt
2011-05-26  2:23                                                       ` Stefan Monnier
2011-05-26  7:50                                                         ` Antoine Levitt
2011-05-28  2:15                                                           ` Stefan Monnier
2011-02-11 11:08         ` Announcing org-contacts, a bbdb-like contact manager for Org Thierry Volpiatto
2011-02-11 11:08           ` Thierry Volpiatto
2011-02-11 15:08 ` Darlan Cavalcante Moreira
2011-02-23 11:09   ` Julien Danjou
2011-02-12 12:18 ` Bastien
2011-02-12 16:35   ` John Hendy
2011-02-12 17:12     ` Bastien
2011-02-23 11:11     ` Julien Danjou
2011-02-12 19:42   ` Matt Lundin
2011-02-23 11:14     ` Julien Danjou
2011-02-14 18:24   ` Wes Hardaker
2011-02-23 11:10   ` Julien Danjou
2011-02-26 17:26     ` Bastien

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

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

  git send-email \
    --in-reply-to=jwv8vumv7bm.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=tassilo@member.fsf.org \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.