Update
This commit is contained in:
parent
71f7c7a69f
commit
3046527f73
1 changed files with 52 additions and 8 deletions
60
NOTES.org
60
NOTES.org
|
|
@ -22,8 +22,8 @@
|
||||||
#+BEGIN: org-ql :query "todo: tags:bug" :columns ((priority "P") ((property "milestone") "M") (todo "Keyword") heading) :sort (priority todo date) :ts-format "%Y-%m-%d %H:%M"
|
#+BEGIN: org-ql :query "todo: tags:bug" :columns ((priority "P") ((property "milestone") "M") (todo "Keyword") heading) :sort (priority todo date) :ts-format "%Y-%m-%d %H:%M"
|
||||||
| P | M | Keyword | Heading |
|
| P | M | Keyword | Heading |
|
||||||
|---+-----+---------+------------------------------------------------|
|
|---+-----+---------+------------------------------------------------|
|
||||||
| A | 0.6 | PROJECT | [[Compatibility with Org 9.4 custom link changes][Compatibility with Org 9.4 custom link changes]] |
|
|
||||||
| | | 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]] |
|
||||||
#+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]])
|
||||||
|
|
@ -107,12 +107,13 @@
|
||||||
- [[#omnifocus-like-screencasts][OmniFocus-like screencasts]]
|
- [[#omnifocus-like-screencasts][OmniFocus-like screencasts]]
|
||||||
- [[#use-ripgrep-to-search-unopened-files][Use ripgrep to search unopened files]]
|
- [[#use-ripgrep-to-search-unopened-files][Use ripgrep to search unopened files]]
|
||||||
- [[#key-cache-results-by-action-function][Key cache results by action function]]
|
- [[#key-cache-results-by-action-function][Key cache results by action function]]
|
||||||
|
- [[#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]]
|
||||||
- [[#alternative-parsing-libraries][Alternative parsing libraries]]
|
|
||||||
- [[#fancier-searching-for-inherited-tags][Fancier searching for inherited tags]]
|
- [[#fancier-searching-for-inherited-tags][Fancier searching for inherited tags]]
|
||||||
- [[#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]]
|
- [[#reverse-sorting][Reverse sorting]]
|
||||||
|
- [[#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]]
|
||||||
- [[#optimization-for-olp-predicate][Optimization for olp predicate]]
|
- [[#optimization-for-olp-predicate][Optimization for olp predicate]]
|
||||||
|
|
@ -129,6 +130,7 @@
|
||||||
- [[#normalize-queries][Normalize queries]]
|
- [[#normalize-queries][Normalize queries]]
|
||||||
- [[#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]]
|
||||||
- [[#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]]
|
||||||
|
|
@ -385,12 +387,6 @@ That could run queries in the other process and then send results to the main Em
|
||||||
|
|
||||||
However, there might still be a useful idea here somewhere...
|
However, there might still be a useful idea here somewhere...
|
||||||
|
|
||||||
** MAYBE [#C] Alternative parsing libraries
|
|
||||||
|
|
||||||
|
|
||||||
+ e.g. Bovine and Wisent come with Emacs, which would allow us to drop the =peg= dependency (which doesn't use lexical binding).
|
|
||||||
+ [[https://github.com/cute-jumper/parsec.el][parsec]] is third-party, but looks powerful
|
|
||||||
|
|
||||||
** MAYBE [#C] Fancier searching for inherited tags
|
** MAYBE [#C] Fancier searching for inherited tags
|
||||||
|
|
||||||
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.
|
||||||
|
|
@ -538,6 +534,46 @@ Need to mention incompatible change (though that isn't the best way to describe
|
||||||
|
|
||||||
*** WAITING [[https://github.com/alphapapa/org-ql/issues/143#issuecomment-863638651][Get feedback]]
|
*** WAITING [[https://github.com/alphapapa/org-ql/issues/143#issuecomment-863638651][Get feedback]]
|
||||||
|
|
||||||
|
** PROJECT Recursive sub-queries in non-sexp format
|
||||||
|
|
||||||
|
[2021-09-08 Wed 15:41] Eric Abrahamsen showed me this in =#emacs:matrix.org=:
|
||||||
|
|
||||||
|
#+BEGIN_SRC elisp
|
||||||
|
(defvar test-pexs
|
||||||
|
'((query (+ (or compound-term term)))
|
||||||
|
(term (or subquery prefixed-term kv-term value) term-end)
|
||||||
|
(subquery "(" query ")"
|
||||||
|
`(query -- (if (= 1 (length query)) query (list query))))
|
||||||
|
(prefixed-term (or negated-term near-term))
|
||||||
|
(negated-term (or "not " "-") term
|
||||||
|
`(term -- (list 'not term)))
|
||||||
|
(near-term "near " term
|
||||||
|
`(term -- (list 'near term)))
|
||||||
|
(compound-term (or or-terms and-terms))
|
||||||
|
(or-terms (or subquery prefixed-term term) "or " (or subquery prefixed-term term)
|
||||||
|
`(t1 t2 -- (list 'or t1 t2)))
|
||||||
|
(and-terms (or subquery prefixed-term term) "and " (or subquery prefixed-term term)
|
||||||
|
`(t1 t2 -- (list 'and t1 t2)))
|
||||||
|
(value (or quoted-value plain-value))
|
||||||
|
(plain-value (substring (+ [word])))
|
||||||
|
(quoted-value "\"" (substring (+ (not "\"") (any))) "\"")
|
||||||
|
(kv-term plain-value ":" value
|
||||||
|
`(k v -- (cons (intern k) v)))
|
||||||
|
(term-end (opt (+ [space])))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_QUOTE
|
||||||
|
The INFINITE RECURSIVE SUBQUERIES is particularly nice
|
||||||
|
|
||||||
|
BTW, I see what you mean about the peg macros, that's a real pain. I have a small patch that should fix that
|
||||||
|
|
||||||
|
This was half-cribbed from org-ql to begin with, so it's only right that you get something in return :)
|
||||||
|
|
||||||
|
The subtlety is all in the ordering of the or statements
|
||||||
|
#+END_QUOTE
|
||||||
|
|
||||||
|
It should be pretty easy to add some of that to our query parsing.
|
||||||
|
|
||||||
** PROJECT [#B] Optimized, date-specific timestamp regexps :enhancement:
|
** PROJECT [#B] Optimized, date-specific timestamp regexps :enhancement:
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:milestone: 0.7
|
:milestone: 0.7
|
||||||
|
|
@ -2133,6 +2169,13 @@ e.g. doesn't currently show the =View= header.
|
||||||
|
|
||||||
See notes on 1dce9467f25428b5289d3665cd840820969ed65a. It would be good to test the caching explicitly, at least for some queries, because if I were to completely break it again, in such a way that results were stored but retrieval always failed, the tests wouldn't catch it.
|
See notes on 1dce9467f25428b5289d3665cd840820969ed65a. It would be good to test the caching explicitly, at least for some queries, because if I were to completely break it again, in such a way that results were stored but retrieval always failed, the tests wouldn't catch it.
|
||||||
|
|
||||||
|
** CANCELED [#C] Alternative parsing libraries
|
||||||
|
|
||||||
|
+ e.g. Bovine and Wisent come with Emacs, which would allow us to drop the =peg= dependency +(which doesn't use lexical binding)+
|
||||||
|
+ [[https://github.com/cute-jumper/parsec.el][parsec]] is third-party, but looks powerful
|
||||||
|
|
||||||
|
[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] 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
|
||||||
|
|
@ -3256,6 +3299,7 @@ When committing a fix:
|
||||||
- [[#benson-chu][Benson Chu]]
|
- [[#benson-chu][Benson Chu]]
|
||||||
- [[#kevin-brubeck-unhammer][Kevin Brubeck Unhammer]]
|
- [[#kevin-brubeck-unhammer][Kevin Brubeck Unhammer]]
|
||||||
- [[#mikhail-skorzhinskiy][Mikhail Skorzhinskiy]]
|
- [[#mikhail-skorzhinskiy][Mikhail Skorzhinskiy]]
|
||||||
|
- [[#trey-peacock][Trey Peacock]]
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
** [[https://github.com/AloisJanicek/.doom.d-2nd][Alois Janicek]]
|
** [[https://github.com/AloisJanicek/.doom.d-2nd][Alois Janicek]]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue