From: Jason Dunsmore <emacs-orgmode@dunsmor.com>
To: Matt Lundin <mdl@imapmail.org>
Cc: emacs-orgmode@dunsmor.com, emacs-orgmode@gnu.org,
Bastien <bastien.guerry@wikimedia.fr>
Subject: Re: Re: [PATCH] Stable key assignment for org-fast-tag-selection
Date: Thu, 20 Jan 2011 20:27:38 -0600 [thread overview]
Message-ID: <87ei876let.fsf@riotblast.dunsmor.com> (raw)
In-Reply-To: <87y66fxru5.fsf@fastmail.fm> (Matt Lundin's message of "Thu, 20 Jan 2011 15:06:42 -0500")
Matt Lundin <mdl@imapmail.org> writes:
> Bastien <bastien.guerry@wikimedia.fr> writes:
>
>> emacs-orgmode@dunsmor.com writes:
>>
>>> - Eval (setq org-use-fast-tag-selection t)
>>> - Eval (setq org-fast-tag-selection-single-key "expert")
>>> - Create a heading with tags :a1:a2:
>>> - Create another heading with tags :a1:a2:
>>> - Type "C-c a", "C-c a", "C-c a", "C-c a"
>>> - Notice how it changes from a1 to a2
>>
>> I reproduced this, well spotted.
>>
>>> Below is a patch to make the character assignment stable, given that all
>>> of the same tags exist in the file each time it's run.
>>
>> Thanks for the patch!
>>
>> I was not able to apply it using the pw utility, so I made the change
>> myself -- I forgot to do a "git commit --amend --author" tho, sorry!
>
> This patch breaks grouping in fast tag selection, since the sort
> function ignores the grouping information provided in org-tag-alist.
>
> Here's a sample org-tag-alist:
>
> (setq org-tag-alist '((:startgroup . nil)
> ("desk" . ?d)
> ("email" . ?m)
> ("hack" . ?k)
> ("net" . ?n)
> ("phone" . ?p)
> (:endgroup . nil)
> (:startgroup . nil)
> ("home" . ?h)
> ("yard" . ?y)
> ("errands" . ?e)
> (:endgroup . nil)
> (:startgroup . nil)
> ("read" . ?r)
> ("script" .?s)
> ("think" . ?t)
> ("travel" . ?j)
> (:endgroup . nil)))
>
> And here's the prompt for org-tag-alist:
>
> Inherited: inbox per prof
> Current:
> Next change exits
> }
> }
> }
> { { { [d] desk [m] email [e] errands [k] hack [h] home
> [n] net [p] phone [r] read [s] script [t] think
> [j] travel [y] yard
Good catch. I see the problem.
--8<---------------cut here---------------start------------->8---
(sort org-tag-alist (lambda (a b) (string< (car a) (car b))))
--8<---------------cut here---------------end--------------->8---
Yields:
--8<---------------cut here---------------start------------->8---
((:endgroup)
(:endgroup)
(:endgroup)
(:startgroup)
(:startgroup)
(:startgroup)
("desk" . 100)
("email" . 109)
("errands" . 101)
("hack" . 107)
("home" . 104)
("net" . 110)
("phone" . 112)
("read" . 114)
("script" . 115)
("think" . 116)
("travel" . 106)
("yard" . 121))
--8<---------------cut here---------------end--------------->8---
And a bunch of code relies on the position of the :startgroup
and :endgroup dummy tags.
I wonder why this design was chosen instead of using a list of alists
for grouping. For example:
--8<---------------cut here---------------start------------->8---
(setq org-tag-alist '((("desk" . ?d)
("email" . ?m)
("hack" . ?k)
("net" . ?n)
("phone" . ?p))
(("home" . ?h)
("yard" . ?y)
("errands" . ?e))
(("read" . ?r)
("script" .?s)
("think" . ?t)
("travel" . ?j))))
--8<---------------cut here---------------end--------------->8---
Maybe org-tag-alist could either be an alist or a list of alists, and a
simple (listp (caar org-tag-alist)) test could be used to see what form
org-tag-alist is in and then handle accordingly. Does anybody see a
problem with that approach?
This doesn't seem like a trivial change, so my original patch should
probably be reverted until this gets implemented properly.
Regards,
Jason
prev parent reply other threads:[~2011-01-21 2:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-12 20:34 [PATCH] Stable key assignment for org-fast-tag-selection emacs-orgmode
2011-01-18 0:56 ` Bastien
2011-01-20 20:06 ` Matt Lundin
2011-01-21 2:27 ` Jason Dunsmore [this message]
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.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ei876let.fsf@riotblast.dunsmor.com \
--to=emacs-orgmode@dunsmor.com \
--cc=bastien.guerry@wikimedia.fr \
--cc=emacs-orgmode@gnu.org \
--cc=mdl@imapmail.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 public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.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).