From: Haakon HR <haakonhr@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Agenda view sorting based on custom property
Date: Fri, 17 Jun 2022 11:42:55 +0200 [thread overview]
Message-ID: <CAAEvWZ_BbS+HKArkpqP8pGMgk2G7DDfM3KrQ7LkrkMd+RvkMpQ@mail.gmail.com> (raw)
Hi all,
I'm trying to hack together a custom agenda view where I want to sort
the entries by a custom property, let's call it :CUSTOM:. So the entries
in question would look like this:
* TODO Buy cheese
:PROPERTIES
:CUSTOM: 2
:END:
I have tried a few approaches but I'm a bit stuck. My first approach was
to use the variable `org-agenda-cmp-user-defined' and implement a
comparison function based on the already existing ones like
`org-cmp-alpha' or `org-cmp-effort'. However, I'm not able to extract
the custom property from the kind of entry that is passed into the
comparison function, which seem to rely on `text-properties'. Is it
possible to somehow make custom properties available as a text property,
similar to things like 'todo-state, 'tags and so on?
My second approach was to try to use the org parsing capabilities. I can
get the AST by parsing the buffers of interest containing entries I want
to sort. I'm for example able to get the list of :CUSTOM: with this
snippet:
`(org-element-map (org-element-parse-buffer) '(headline) (lambda (hl)
(org-element-property :RELEVANCE hl)))'
Then I imagine I can manipulate the AST into the order I want and then
use `org-element-interpret-data' to create a new buffer w/ the desired
sorting. However, I haven't found a way to actually create a buffer
containing all the information from the interpreted AST as some
information seem to get lost. The end goal in this case is also an
agenda view where I can build on top of all the agenda capabilities, but
using this custom sorting. Is there a way to start from an AST and
transform it into an agenda view?
Thanks for any help or tips,
Haakon
next reply other threads:[~2022-06-17 9:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-17 9:42 Haakon HR [this message]
2022-06-17 11:50 ` Agenda view sorting based on custom property Ihor Radchenko
2022-06-17 20:51 ` Haakon HR
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=CAAEvWZ_BbS+HKArkpqP8pGMgk2G7DDfM3KrQ7LkrkMd+RvkMpQ@mail.gmail.com \
--to=haakonhr@gmail.com \
--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).