From: Adam Spiers <orgmode@adamspiers.org>
To: org-mode mailing list <emacs-orgmode@gnu.org>
Subject: Re: overloading of internal priority calculations in agenda
Date: Tue, 22 Dec 2020 15:05:16 +0000 [thread overview]
Message-ID: <20201222150516.kqounuguau3odhr7@gmail.com> (raw)
In-Reply-To: <20201202142053.zexzdpmyv4ear3zc@gmail.com>
Hi again,
On Wed, Dec 02, 2020 at 02:20:53PM +0000, Adam Spiers wrote:
>Hi all,
>
>I'm currently working on adding a feature to org-agenda which allows
>manual ordering of entries in combination with the existing automatic
>ordering (as dictated by `org-agenda-sorting-strategy').
>
>During my investigations I noticed that while `org-get-priority' converts
>[#B] style cookies into a numeric priority which is a multiple of
>1000, further adjustments are made in functions like
>`org-agenda-get-scheduled' before adding this numeric priority as a
>text property on the entry:
>
> 'priority (if habitp (org-habit-get-priority habitp)
> (+ 99 diff (org-get-priority item)))
>
>In this case `diff' refers to the number of days between now and when
>the item was scheduled. A slightly different calculation is made in
>`org-agenda-get-timestamps':
>
> (org-add-props item props
> 'priority (if habit?
> (org-habit-get-priority (org-habit-parse-todo))
> (org-get-priority item))
>
>I further noticed that this overloading of the internal priority by
>including timestamp and habit data causes disruption to the behaviour
>I imagine most users would expect from `org-agenda-sorting-strategy'.
>For example, if you have `priority-down' as the first entry in the
>`agenda' section and `category-keep' as the second, then differences
>in the SCHEDULED timestamp are included in the priority calculation
>and can therefore prevent sorting of two adjacent [#B] items by
>category. This seems like a bug to me, or at least breaks the
>Principle of Least Surprise.
[snipped]
>Given that `org-agenda-sorting-strategy' now supports all manner of
>sorting criteria, many of which are time-sensitive, I would like to
>know if there is any reason not to remove this overloading of the
>priority calculation, i.e. decoupling it to depend purely on the
>result of `org-get-priority' and `org-habit-get-priority'?
>
>If fact, perhaps we could go one step further and add support for new
>habit-priority-{up,down} sorters to `org-agenda-sorting-strategy', so
>that the priority-{up,down} sorters sort purely by the priority cookie
>and nothing else?
Gently bumping this as I didn't get any replies yet. I would like to
continue working on a solution, but obviously don't want to waste time
on something which would be rejected.
If it is considered important to preserve the exact behaviour
currently offered by `org-agenda-sorting-strategy' then I would
propose the following:
- Keep the existing priority-{up,down} which combine priority cookies
with timestamp data and the result from `org-habit-get-priority',
but probably also deprecate it and remove it from the default value.
- Introduce new priority-cookie-{up,down} sorters which operate purely
on [#A] and [#1] style priority cookies and nothing else.
This would facilitate decoupling of the sortable criteria whilst
remaining backwards compatible.
Does this sound reasonable? I am keen to proceed very soon (ideally
over the Xmas break). I have already written some new ert tests for
`org-agenda-sorting-strategy' which would be included in any submitted
patches.
Thanks!
Adam
next prev parent reply other threads:[~2020-12-22 15:05 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-02 14:20 overloading of internal priority calculations in agenda Adam Spiers
2020-12-22 15:05 ` Adam Spiers [this message]
2020-12-22 23:38 ` Samuel Wales
2020-12-23 0:13 ` Adam Spiers
2021-03-09 7:07 ` Jack Kamm
2021-03-09 11:09 ` Adam Spiers
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=20201222150516.kqounuguau3odhr7@gmail.com \
--to=orgmode@adamspiers.org \
--cc=emacs-orgmode@gnu.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).