This commit is contained in:
Adam Porter 2022-03-04 03:46:17 -06:00
parent 940a5bbd88
commit c289835e7a

107
NOTES.org
View file

@ -23,7 +23,7 @@
| P | M | Keyword | Heading | | P | M | Keyword | Heading |
|---+-----+---------+------------------------------------------------| |---+-----+---------+------------------------------------------------|
| | | NEXT | [[Check Org 9.4 source code for second argument][Check Org 9.4 source code for second argument]] | | | | NEXT | [[Check Org 9.4 source code for second argument][Check Org 9.4 source code for second argument]] |
| A | 0.6 | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] | | A | 0.7 | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] |
#+END: #+END:
** Milestones ([[org-ql-search:todo%253A?super-groups=%2528%2528%253Aauto-property%2520%2522milestone%2522%2529%2529&sort=%2528todo%2529&title=%2522Milestones%2522][view]]) ** Milestones ([[org-ql-search:todo%253A?super-groups=%2528%2528%253Aauto-property%2520%2522milestone%2522%2529%2529&sort=%2528todo%2529&title=%2522Milestones%2522][view]])
@ -31,15 +31,15 @@
#+BEGIN: org-ql :query "todo: property:milestone" :columns (((property "milestone") "M") (priority "P") todo heading) :sort (priority date) :take 9 #+BEGIN: org-ql :query "todo: property:milestone" :columns (((property "milestone") "M") (priority "P") todo heading) :sort (priority date) :take 9
| M | P | Todo | Heading | | M | P | Todo | Heading |
|--------+---+---------+--------------------------------------------------------------------------------| |--------+---+---------+--------------------------------------------------------------------------------|
| 0.6 | A | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] | | 0.7 | A | PROJECT | [[Taxy-based search view][Taxy-based search view]] |
| 0.6 | A | PROJECT | [[Reverse sorting][Reverse sorting]] | | 0.7 | A | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] |
| future | B | TODO | [[Sorter for property values][Sorter for property values]] | | future | B | TODO | [[Sorter for property values][Sorter for property values]] |
| 0.7 | B | TODO | [[Logbook state change predicate][Logbook state change predicate]] |
| 0.7 | B | TODO | [[Bookmarks save list of files instead of e.g. ~org-agenda-files~ when appropriate][Bookmarks save list of files instead of e.g. ~org-agenda-files~ when appropriate]] | | 0.7 | B | TODO | [[Bookmarks save list of files instead of e.g. ~org-agenda-files~ when appropriate][Bookmarks save list of files instead of e.g. ~org-agenda-files~ when appropriate]] |
| 0.7 | B | TODO | [[Change ~clocked~ and ~closed~'s behavior with just-number args][Change ~clocked~ and ~closed~'s behavior with just-number args]] | | 0.7 | B | TODO | [[Change ~clocked~ and ~closed~'s behavior with just-number args][Change ~clocked~ and ~closed~'s behavior with just-number args]] |
| 0.6 | B | TODO | [[Review all normalizers for potential loops][Review all normalizers for potential loops]] | | 0.7 | B | TODO | [[Review all normalizers for potential loops][Review all normalizers for potential loops]] |
| 0.6 | B | TODO | [[Normalize query while preserving body][Normalize query while preserving body]] | | 0.7 | B | TODO | [[Normalize query while preserving body][Normalize query while preserving body]] |
| 0.6 | B | TODO | [[Use string queries in view headers when possible][Use string queries in view headers when possible]] | | 0.6 | B | TODO | [[Use string queries in view headers when possible][Use string queries in view headers when possible]] |
| 0.7 | B | PROJECT | [[Logbook state change predicate][Logbook state change predicate]] |
#+END: #+END:
** Underway ([[org-ql-search:todo%253AUNDERWAY?sort=%2528priority%2529&title=%2522Underway%2522][view]]) ** Underway ([[org-ql-search:todo%253AUNDERWAY?sort=%2528priority%2529&title=%2522Underway%2522][view]])
@ -63,9 +63,9 @@
#+BEGIN: org-ql :query "todo: priority:A" :columns ((priority "P") ((property "milestone") "M") todo heading) :sort (priority date) :take 7 #+BEGIN: org-ql :query "todo: priority:A" :columns ((priority "P") ((property "milestone") "M") todo heading) :sort (priority date) :take 7
| P | M | Todo | Heading | | P | M | Todo | Heading |
|---+-----+---------+------------------------------------------------| |---+-----+---------+------------------------------------------------|
| A | 0.6 | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] | | A | 0.7 | PROJECT | [[Taxy-based search view][Taxy-based search view]] |
| A | 0.7 | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] |
| A | | PROJECT | [[Convert simple sexp queries to non-sexp][Convert simple sexp queries to non-sexp]] | | A | | PROJECT | [[Convert simple sexp queries to non-sexp][Convert simple sexp queries to non-sexp]] |
| A | 0.6 | PROJECT | [[Reverse sorting][Reverse sorting]] |
| A | | PROJECT | [[Org%20link%20types%20%5B2/3%5D][Org link types {2/3}]] | | A | | PROJECT | [[Org%20link%20types%20%5B2/3%5D][Org link types {2/3}]] |
#+END: #+END:
@ -74,8 +74,8 @@
#+BEGIN: org-ql :query (and (todo "PROJECT") (not (descendants (todo "NEXT" "UNDERWAY")))) :columns (((property "milestone") "M") (priority "P") heading) :sort (priority date) :take 7 #+BEGIN: org-ql :query (and (todo "PROJECT") (not (descendants (todo "NEXT" "UNDERWAY")))) :columns (((property "milestone") "M") (priority "P") heading) :sort (priority date) :take 7
| M | P | Heading | | M | P | Heading |
|--------+---+-----------------------------------------| |--------+---+-----------------------------------------|
| 0.7 | A | [[Taxy-based search view][Taxy-based search view]] |
| | A | [[Convert simple sexp queries to non-sexp][Convert simple sexp queries to non-sexp]] | | | A | [[Convert simple sexp queries to non-sexp][Convert simple sexp queries to non-sexp]] |
| 0.6 | A | [[Reverse sorting][Reverse sorting]] |
| | A | [[Org%20link%20types%20%5B2/3%5D][Org link types {2/3}]] | | | A | [[Org%20link%20types%20%5B2/3%5D][Org link types {2/3}]] |
| | B | [[Outline path predicate][Outline path predicate]] | | | B | [[Outline path predicate][Outline path predicate]] |
| | B | [[Document the sorting functions][Document the sorting functions]] | | | B | [[Document the sorting functions][Document the sorting functions]] |
@ -89,7 +89,6 @@
:END: :END:
:CONTENTS: :CONTENTS:
- [[#sorter-for-property-values][Sorter for property values]] - [[#sorter-for-property-values][Sorter for property values]]
- [[#logbook-state-change-predicate][Logbook state change predicate]]
- [[#add-auto-keyword-to-planning-predicate][Add :auto keyword to (planning) predicate]] - [[#add-auto-keyword-to-planning-predicate][Add :auto keyword to (planning) predicate]]
- [[#bookmarks-save-list-of-files-instead-of-eg-org-agenda-files-when-appropriate][Bookmarks save list of files instead of e.g. org-agenda-files when appropriate]] - [[#bookmarks-save-list-of-files-instead-of-eg-org-agenda-files-when-appropriate][Bookmarks save list of files instead of e.g. org-agenda-files when appropriate]]
- [[#change-deadlines-auto-argument-to-auto-andor-auto-t][Change (deadline)'s auto argument to :auto and/or :auto t]] - [[#change-deadlines-auto-argument-to-auto-andor-auto-t][Change (deadline)'s auto argument to :auto and/or :auto t]]
@ -111,9 +110,10 @@
- [[#use-session-async-to-have-a-persistent-search-process][Use session-async to have a persistent search process]] - [[#use-session-async-to-have-a-persistent-search-process][Use session-async to have a persistent search process]]
- [[#overlay-based-caching-inspired-by-org-num-mode][Overlay-based caching inspired by org-num-mode]] - [[#overlay-based-caching-inspired-by-org-num-mode][Overlay-based caching inspired by org-num-mode]]
- [[#fancier-searching-for-inherited-tags][Fancier searching for inherited tags]] - [[#fancier-searching-for-inherited-tags][Fancier searching for inherited tags]]
- [[#taxy-based-search-view][Taxy-based search view]]
- [[#compatibility-with-org-94-custom-link-changes][Compatibility with Org 9.4 custom link changes]] - [[#compatibility-with-org-94-custom-link-changes][Compatibility with Org 9.4 custom link changes]]
- [[#convert-simple-sexp-queries-to-non-sexp][Convert simple sexp queries to non-sexp]] - [[#convert-simple-sexp-queries-to-non-sexp][Convert simple sexp queries to non-sexp]]
- [[#reverse-sorting][Reverse sorting]] - [[#logbook-state-change-predicate][Logbook state change predicate]]
- [[#recursive-sub-queries-in-non-sexp-format][Recursive sub-queries in non-sexp format]] - [[#recursive-sub-queries-in-non-sexp-format][Recursive sub-queries in non-sexp format]]
- [[#optimized-date-specific-timestamp-regexps][Optimized, date-specific timestamp regexps]] - [[#optimized-date-specific-timestamp-regexps][Optimized, date-specific timestamp regexps]]
- [[#multi-pass-query-normalization][Multi-pass query normalization]] - [[#multi-pass-query-normalization][Multi-pass query normalization]]
@ -132,6 +132,8 @@
- [[#update-view-screenshots][Update view screenshots]] - [[#update-view-screenshots][Update view screenshots]]
- [[#test-caching][Test caching]] - [[#test-caching][Test caching]]
- [[#alternative-parsing-libraries][Alternative parsing libraries]] - [[#alternative-parsing-libraries][Alternative parsing libraries]]
- [[#links-are-broken-in-dynamic-blocks-when-the-task-has-the-cookies--or---issue-248--alphapapaorg-ql--github][Links are broken in dynamic blocks when the task has the cookies {/} or {%} · Issue #248 · alphapapa/org-ql · GitHub]]
- [[#reverse-sorting][Reverse sorting]]
- [[#timestamp-predicates-using-relative-dates-break-caching][Timestamp predicates using relative dates break caching]] - [[#timestamp-predicates-using-relative-dates-break-caching][Timestamp predicates using relative dates break caching]]
- [[#link-target-doesnt-work][~(link :target)~ doesn't work]] - [[#link-target-doesnt-work][~(link :target)~ doesn't work]]
- [[#link-regexp-p-doesnt-work][~(link :regexp-p)~ doesn't work]] - [[#link-regexp-p-doesnt-work][~(link :regexp-p)~ doesn't work]]
@ -156,14 +158,6 @@
- [[#use-macros-for-date][Use macros for date]] - [[#use-macros-for-date][Use macros for date]]
:END: :END:
** DONE [#A] [[https://github.com/alphapapa/org-ql/issues/248][Links are broken in dynamic blocks when the task has the cookies {/} or {%} · Issue #248 · alphapapa/org-ql · GitHub]] :bug:
:PROPERTIES:
:milestone: 0.7
:END:
:LOGBOOK:
CLOCK: [2022-03-01 Tue 02:26]--[2022-03-01 Tue 02:47] => 0:21
:END:
** TODO [#B] Sorter for property values :enhancement: ** TODO [#B] Sorter for property values :enhancement:
:PROPERTIES: :PROPERTIES:
:milestone: future :milestone: future
@ -177,16 +171,6 @@ CLOCK: [2022-03-01 Tue 02:26]--[2022-03-01 Tue 02:47] => 0:21
:sort '((property "milestone") priority)) :sort '((property "milestone") priority))
#+END_SRC #+END_SRC
** TODO [#B] Logbook state change predicate :enhancement:
:PROPERTIES:
:milestone: 0.7
:END:
+ [[https://github.com/alphapapa/org-ql/issues/192][Feature Request : Search Logbook to find all tasks that changed state on a specific date · Issue #192 · alphapapa/org-ql · GitHub]]
+ [[https://github.com/alphapapa/org-ql/pull/245][add predicate for checking DONE state changes by teeann · Pull Request #245 · alphapapa/org-ql · GitHub]]
[2022-02-21 Mon 19:32] I'd like to use this myself right now.
** TODO [#B] Add ~:auto~ keyword to ~(planning)~ predicate ** TODO [#B] Add ~:auto~ keyword to ~(planning)~ predicate
It should act like ~(or (deadline auto) (scheduled :to today))~. It should act like ~(or (deadline auto) (scheduled :to today))~.
@ -268,14 +252,18 @@ Searching that with a query like =property:author=Fabrice= returns nothing; the
** TODO [#B] Review all normalizers for potential loops ** TODO [#B] Review all normalizers for potential loops
:PROPERTIES: :PROPERTIES:
:milestone: 0.6 :milestone: 0.7
:END:
:LOGBOOK:
- Note taken on [2022-03-04 Fri 03:27] \\
Moving to 0.7 since I tagged 0.6 already.
:END: :END:
Since I found (and fixed) one after I made normalizers apply repeatedly, I should check the rest, because there might be a few more that could do it. Since I found (and fixed) one after I made normalizers apply repeatedly, I should check the rest, because there might be a few more that could do it.
** TODO [#B] Normalize query while preserving body :enhancement: ** TODO [#B] Normalize query while preserving body :enhancement:
:PROPERTIES: :PROPERTIES:
:milestone: 0.6 :milestone: 0.7
:END: :END:
Sometimes it would be helpful to define a predicate that normalizes to another predicate while having a different body. [[https://github.com/plundaahl/dotfiles/blob/ef4d25498ab895c3c22b588ae2506fd69bdd8755/emacs/package-defs/org-ql/pred-created.el#L19][For example]]: Sometimes it would be helpful to define a predicate that normalizes to another predicate while having a different body. [[https://github.com/plundaahl/dotfiles/blob/ef4d25498ab895c3c22b588ae2506fd69bdd8755/emacs/package-defs/org-ql/pred-created.el#L19][For example]]:
@ -410,9 +398,20 @@ However, there might still be a useful idea here somewhere...
When tag inheritance is enabled, and the given tags aren't file-level tags, we could search directly to headings containing the matching tags, and then only do per-heading matching on the subtrees. Sometimes that would be much faster. However, that might make the logic special-cased and complicated. Might need a redesign of the whole matching/predicate system to do cleanly. When tag inheritance is enabled, and the given tags aren't file-level tags, we could search directly to headings containing the matching tags, and then only do per-heading matching on the subtrees. Sometimes that would be much faster. However, that might make the logic special-cased and complicated. Might need a redesign of the whole matching/predicate system to do cleanly.
** PROJECT [#A] Taxy-based search view
:PROPERTIES:
:milestone: 0.7
:END:
[2022-03-04 Fri 03:45] For 0.7, this should be optional, and org-super-agenda should still be supported for grouping. Maybe in the future that wouldn't be necessary, especially if org-super-agenda were also to use Taxy.
** PROJECT [#A] Compatibility with Org 9.4 custom link changes :bug: ** PROJECT [#A] Compatibility with Org 9.4 custom link changes :bug:
:PROPERTIES: :PROPERTIES:
:milestone: 0.6 :milestone: 0.7
:END:
:LOGBOOK:
- Note taken on [2022-03-04 Fri 03:29] \\
Not sure if I already did this for 0.6. Retargeting for 0.7.
:END: :END:
[2020-11-13 Fri 22:36] From [[https://www.orgmode.org/Changes.html][the changelog]]: [2020-11-13 Fri 22:36] From [[https://www.orgmode.org/Changes.html][the changelog]]:
@ -540,18 +539,29 @@ Unfortunately it does not say what the new, required second argument is.
Maybe make it an option to automatically convert them when possible, because if a user wanted to add complexity to a string query, he'd have to rewrite it as a sexp. Maybe make it an option to automatically convert them when possible, because if a user wanted to add complexity to a string query, he'd have to rewrite it as a sexp.
** PROJECT [#A] Reverse sorting ** PROJECT [#B] Logbook state change predicate :enhancement:
:PROPERTIES: :PROPERTIES:
:milestone: 0.6 :milestone: 0.7
:END: :END:
+ [[https://github.com/alphapapa/org-ql/issues/143][Reverse sort order? · Issue #143 · alphapapa/org-ql · GitHub]] + [[https://github.com/alphapapa/org-ql/issues/192][Feature Request : Search Logbook to find all tasks that changed state on a specific date · Issue #192 · alphapapa/org-ql · GitHub]]
+ [[https://github.com/alphapapa/org-ql/pull/245][add predicate for checking DONE state changes by teeann · Pull Request #245 · alphapapa/org-ql · GitHub]]
*** TODO Update docs [2022-02-21 Mon 19:32] I'd like to use this myself right now.
Need to mention incompatible change (though that isn't the best way to describe it) in the changelog. [2022-03-04 Fri 03:30] Some early plans:
*** WAITING [[https://github.com/alphapapa/org-ql/issues/143#issuecomment-863638651][Get feedback]] + A simple string argument, like ~(logbook "foo")~, should match if an entry has that string in a logbook drawer.
+ A sexp argument, like ~(logbook (ts :from "2022-01-01"))~, should match if an entry matches that sexp while narrowed to its logbook.
- This might allow for optimizations such as searching for the timestamp regexp across an entire buffer and then confirming with a body predicate (which would be faster than checking every entry for a logbook).
+ State changes could be handled something like ~(logbook :from "TODO" :to "NEXT")~.
- OTOH, the ~:from~ and ~:to~ could be confused with timestamp arguments. And maybe those should be used directly, rather than using a sexp argument, e.g. ~(logbook :from "2022-01-01")~.
- Alternative: ~(logbook :state ("TODO" "NEXT"))~ would search for changes from TODO to NEXT. It could be combined with a date, like ~(logbook :state ("TODO" "NEXT") :on "2022-01-01")~, and to search for any state change on that date could be something like ~(logbook :state t :on "2022-01-01")~.
I posted these to #192.
*** NEXT Check feedback on #192
SCHEDULED: <2022-03-18 Fri>
** PROJECT Recursive sub-queries in non-sexp format ** PROJECT Recursive sub-queries in non-sexp format
@ -2195,6 +2205,27 @@ See notes on 1dce9467f25428b5289d3665cd840820969ed65a. It would be good to test
[2021-09-08 Wed 15:40] (=peg= does use lexical binding now, and it's in ELPA and getting a bit of attention, so no need to drop it, I think.) [2021-09-08 Wed 15:40] (=peg= does use lexical binding now, and it's in ELPA and getting a bit of attention, so no need to drop it, I think.)
** DONE [#A] [[https://github.com/alphapapa/org-ql/issues/248][Links are broken in dynamic blocks when the task has the cookies {/} or {%} · Issue #248 · alphapapa/org-ql · GitHub]] :bug:
:PROPERTIES:
:milestone: 0.7
:END:
:LOGBOOK:
CLOCK: [2022-03-01 Tue 02:26]--[2022-03-01 Tue 02:47] => 0:21
:END:
** DONE [#A] Reverse sorting
:PROPERTIES:
:milestone: 0.6
:END:
+ [[https://github.com/alphapapa/org-ql/issues/143][Reverse sort order? · Issue #143 · alphapapa/org-ql · GitHub]]
*** DONE Update docs
Need to mention incompatible change (though that isn't the best way to describe it) in the changelog.
*** DONE [[https://github.com/alphapapa/org-ql/issues/143#issuecomment-863638651][Get feedback]]
** DONE [#A] Timestamp predicates using relative dates break caching :bug: ** DONE [#A] Timestamp predicates using relative dates break caching :bug:
:PROPERTIES: :PROPERTIES:
:milestone: 0.6 :milestone: 0.6