emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] org.el: Improve automatic fast tag selection keys (was: Odd


From: Christopher M. Miles
Subject: Re: [PATCH] org.el: Improve automatic fast tag selection keys (was: Odd characters in the fast tags selection interface)
Date: Mon, 08 Aug 2022 07:42:49 +0800
User-agent: mu4e 1.8.6; emacs 28.1

I agree to improve the tag selection UI. The hard-to-type characters is
not necessary. It's hard to type, and not match the purpose of "fast tag
selection", and will break tags alignment.

Also need minor improvement on alignment of tags "group tag".

Please see my screenshot attachment.

Hanno Perrey <hanno@hoowl.se> writes:

>> I am not sure. Omitting (random) part of the tags sounds awkward - some
>> tags will be assigned keys and some not. I guess something that will
>> improve the current situation would be simply not printing chars beyond
>> a-z, while still listing all the tags - it will be less awkward compared
>> to current situation when a key is printed but cannot be used anyway.
>
> Good point. I attach a patch that does just that. After the '~'
> character, only "space" is assigned -- which feels like a hack, but
> means that the selection key field is empty and that the fields are
> still aligned nicely. Actually selection any of these items is not
> possible as space is assigned to clearing the tags. Should this break
> anything that I have missed in my (brief) tests, please let me know!
>
> Additionally, the range A-Z is used once 'z' is reached before assigning
> non-alphabetic (but reasonably-reachable) characters. In case that
> description is difficult to follow, I attach a screenshot of the
> modified code in action.
>
> Please note that I have not (yet) assigned copyright to the FSF.
> However, I believe that these changes are still trivial enough to
> qualify as TINYCHANGE.
>
>> Or we may provide "paging" approach that will re-assign a-z keys when
>> user presses C-n/C-p. Though I do not like this idea too much because we
>> have a more universal menu backend in works at
>> https://orgmode.org/list/87zgisvuu5.fsf@localhost Adding new feature to
>> tag menu does not feel like a good direction to go. If we decide to go
>> this way at the end, we may, at least, also need to update
>> org-fast-todo-selection along similar lines.
>
> Thanks for pointing out that thread, I missed it earlier. It does sound
> like a good idea to wait with more fundamental changes until potential
> changes to the backend are settled.
>
>> Finally, we may simply not list tags with keys beyond "z" at all only
>> indicating that there are more by showing some text at the end of the
>> menu.
>
> That might be an alternative, as I think not even all tags are shown
> now. Let me know should you rather go down that route instead.
>
> [2. text/x-diff; 0001-org.el-Improve-automatic-fast-tag-selection-keys.patch]
> From cdaa585cea7481aca31148350e77a86f22512d0c Mon Sep 17 00:00:00 2001
> From: Hanno Perrey <hanno@hoowl.se>
> Date: Sun, 7 Aug 2022 19:44:18 +0200
> Subject: [PATCH] org.el: Improve automatic fast tag selection keys
>
> * lisp/org.el (org-fast-tag-selection): After automatically assigning
> a-z as keys for selection, offer A-Z range. Continue with characters up
> to tilde character before showing only blanks. Replaces previous logic
> where also hard-to-type characters were assigned.
>
> TINYCHANGE
> ---
>  lisp/org.el | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/lisp/org.el b/lisp/org.el
> index 8bc123e47..d48a44602 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -11762,7 +11762,13 @@ Returns the new tags string, or nil to not change 
> the current settings."
>                 (while (or (rassoc char ntable) (rassoc char table))
>                   (setq char (1+ char)))
>               (setq c2 c1))
> -           (setq c (or c2 char)))
> +           (setq c (or c2
> +                          (if (> char ?~)
> +                              ?\s
> +                            char)))
> +              ;; consider characters A-Z after a-z.
> +              (if (equal char ?z)
> +                  (setq char ?A)))
>           (when ingroup (push tg (car groups)))
>           (setq tg (org-add-props tg nil 'face
>                                   (cond
> -- 
> 2.34.1
>
> [3. image/png; 20220807_19h13m58s_grim.png]...


-- 
[ stardiviner ]
       I try to make every word tell the meaning that I want to express.

       Blog: https://stardiviner.github.io/
       IRC(freenode): stardiviner, Matrix: stardiviner
       GPG: F09F650D7D674819892591401B5DF1C95AE89AC3

Attachment: CleanShot 2022-08-08 at 07.41.17@2x.png
Description: screenshot

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]