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: [Orgmode] Re: Announcing org-contacts, a bbdb-like contact manager for Org
Date: Fri, 11 Feb 2011 18:08:39 -0500 [thread overview]
Message-ID: <jwvlj1mp41j.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87vd0qfhu3.fsf@member.fsf.org> (Tassilo Horn's message of "Fri, 11 Feb 2011 21:15:48 +0100")
>>> So the question is: how can the completion-ignore-case value be
>>> propagated from the completion gathering function in
>>> `completion-at-point-functions' to the function that actually applies
>>> this completion, without having to modify the global or buffer local
>>> value of `completion-ignore-case'?
>>
>> Assuming you have a completion table in variable `table', you should
>> be able to construct a new completion table that's case-insensitive
>> with something like the untested code below:
>>
>> (defun completion-table-case-fold (table string pred action)
>> (let ((completion-ignore-case t))
>> (complete-with-action action table string pred)))
>>
>> [...]
>> (let ((newtable
>> (apply-partially #'completion-table-case-fold table)))
>> [...])
>>
>> where completion-table-case-fold is an auxiliary function which
>> (c|sh)ould be added to minibuffer.el.
> Hm, why not simply add a property :ignore-case to the PROPS a function
> in `completion-at-point-functions' may return in addition to the
> existing :predicate and :annotation-function? Then
> `completion-at-point' could simply bind `completion-ignore-case'
> according to that property when calling `completion-in-region'.
That could work as well, but it's more complexity in
completion-at-point, compared to completion-table-case-fold which can be
added without touching any existing code.
Another reason why doing it inside the completion table is right is
because of the comment I quoted: in your case, it is really a property
of the completion table you return, rather than some user preference
that's locally overridden.
For more complex cases, there is also the issue of what to do when some
parts of the completion are case-sensitive and other parts aren't
(e.g. completion of case-sensitive envvars in case-insensitive file
names), although this is less important for completion-at-point than
for minibuffer completion since you don't have to return a table that
covers the completion of the whole field (composed of file names and
env-vars, for example), and instead you can just limit the completion to
the particular subfield.
Stefan
next prev parent reply other threads:[~2011-02-11 23:08 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 [this message]
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 ` [O] " Stefan Monnier
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=jwvlj1mp41j.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.