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