alphapapa / org-super-agenda

Supercharge your Org daily/weekly agenda by grouping items
GNU General Public License v3.0
1.38k stars 108 forks source link

Matching "(not) done" when using `:todo` #267

Open Walheimat opened 2 months ago

Walheimat commented 2 months ago

OS/platform

Linux

Emacs version and provenance

Emacs 30.0.60, make

Org version and provenance

9.7.5, included in Emacs 30.0.60

org-super-agenda package version and provenance

20240916.1753, MELPA

Description

I don't use the same org-todo-keywords across all of my agenda files. Currently I can just match :todo with nil, t or a specific string. But "done" might be "constructed" or "read" in certain files.

What would be really nice is to say :todo done or :todo not-done and then match against any "(not) done" item.

Org has buffer-local org{-not}-done-regexp. Not sure how easy (or if it all possible) this could be used to enable this.

Etc.

No response

alphapapa commented 2 months ago

Hi Krister,

Yes, this is a good idea. From the filtering side, Org QL provides this, as you can write a query like (not (done)) or (todo) (they are equivalent), but somehow I didn't think to provide the same for org-super-agenda.

The implementation should be relatively straightforward; existing code in this package and org-ql should provide helpful examples. I probably won't have time to work on this soon, so patches welcome in the meantime.

Thanks.

Walheimat commented 2 months ago

Alright, cool. I'll see if I can implement this the way you suggested and then open a PR.