Commit graph

156 commits

Author SHA1 Message Date
Adam Porter
2ddc69b64d Refactor agenda-ng buffer and use org-agenda-mode
Using org-agenda-mode isn't exactly *correct*, but since we use some
compatible text properties, it does give us some functionality for
free, even if it isn't 100% compatible.

Note that this should be considered experimental.  It's not
unimaginable that using some agenda buffer commands in the agenda-ng
buffer could have unexpected consequences, including data corruption.
However, basic ones like jumping to entries and org-agenda-priority
seem to work.
2018-08-21 00:09:02 -05:00
Adam Porter
ad4aad16f1 Change: Rename fmap macro to flet 2018-08-20 08:17:10 -05:00
Adam Porter
32f2b3304a Change: Use macrolet instead of flet for priority sorter 2018-08-20 07:49:49 -05:00
Adam Porter
c9245be371 Tidy 2018-08-20 07:48:10 -05:00
Adam Porter
cdd25e8a7f Add: Support org-super-agenda
Since we aren't calling org-agenda-finalize-entries anymore, we call
org-super-agenda--group-items directly when appropriate.
2018-08-20 07:41:46 -05:00
Adam Porter
f6db1097dc Change: Refactor and tidy
Move add-markers function into org-ql, which should help avoid
cross-dependency, and should be generally useful.
2018-08-20 07:38:07 -05:00
Adam Porter
4822f1406f Change: Consolidate action 2018-08-20 07:09:48 -05:00
Adam Porter
88cf7f395e Change: Minor refactoring 2018-08-20 06:42:19 -05:00
Adam Porter
14351e617d Change: Handle sort argument in org-ql--query
Rather than in the macro.  Trying to consolidate.
2018-08-20 06:18:23 -05:00
Adam Porter
9cce826bfe Fix: Sorting
By using s-join instead of org-agenda-finalize-entries, which does its
own sorting.  We don't need anything it does, at least not now, and if
we ever do, we'll probably want to reimplement it, anyway.

HOWEVER, this breaks org-super-agenda, which uses advice to that
function to group items.  So we need to either figure out another
approach (which I have been unable to do so far, trying cl-letf,
cl-flet, and advice-add with unwind-protect), or make this depend on
org-super-agenda.
2018-08-19 14:49:37 -05:00
Adam Porter
2001c88ed5 Fix: (org-agenda-ng) Handle just query as arguments 2018-08-19 13:39:19 -05:00
Adam Porter
d73175714c Fix: (org-ql) Work when not sorting
Don't know when I broke this.  Oops.
2018-08-19 13:21:00 -05:00
Adam Porter
22bf0ae9c0 Fix: (org-agenda-ng) Add markers
Not sure when I broke this, but this fixes it.  Still probably need to
refactor a bit, as there's some cross-dependency between org-agenda-ng
and org-ql.
2018-08-19 12:10:12 -05:00
Adam Porter
95d51ef998 Comment: Remove comment
Benchmarking shows that, when org-ql is byte-compiled, calling
org-outline-level is actually slightly faster than org-current-level.
2018-08-04 23:14:44 -05:00
Adam Porter
465767e7cc Add: Outline level predicate
Fixes #3.  Thanks to @akirak.
2018-08-04 23:09:21 -05:00
Adam Porter
69083fb17b Task: Add to-do 2018-08-04 16:57:14 -05:00
Adam Porter
334b68de3d Change: (org-ql) Handle arbitrary expressions for sort arg
See https://github.com/alphapapa/org-agenda-ng/pull/1
2018-08-04 15:48:18 -05:00
Adam Porter
cc05faa977 Docs: Add missing sort type to docstring 2018-08-04 15:47:41 -05:00
Adam Porter
08243d5479 Add: (org-ql) Markers argument 2018-08-04 01:52:23 -05:00
Adam Porter
fe3d5c2bd8 Fix: (org-ql) Set "today" to org-ql--today in symbol-macrolet
Since we byte-compile the lambda, this is necessary (at least, I think
this is why).  Remember that we set org-ql--today when we actually run
queries.
2018-08-01 10:53:15 -05:00
Adam Porter
4c045f78ea Tidy: Indentation 2018-08-01 10:52:59 -05:00
Adam Porter
fe32388d50 Change/Fix: (--format-element) Use marker's buffer
When formatting an element outside the element's buffer (e.g. when
mapping --format-element across the results of org-ql), the current buffer
is not the element's source buffer, so functions like org-get-tags-at
will not return the correct results, because they don't use the
marker's buffer.  So now we set the current buffer to the marker's
buffer.

As this package matures, this might become unnecessary in the future,
but it's probably best to keep it for correctness.
2018-08-01 10:50:27 -05:00
Adam Porter
056c93bcd6 Docs: Add examples and update readme 2018-07-10 08:38:17 -05:00
Adam Porter
ed55f7f15f Notes: Add notes 2018-07-10 08:36:24 -05:00
Adam Porter
3ec6ded312 Notes: Add note 2018-07-10 08:29:09 -05:00
Adam Porter
8bfb65d715 Change: Refactor, improve docstrings, argument handling, etc.
Move some code between functions and macros to make more sense and be
more flexible.
2018-07-10 08:27:54 -05:00
Adam Porter
c605ccbaf3 Change: (org-ql--org-timestamp-element<) Use macrolet
Should be a small performance improvement, avoiding funcall overhead.
2018-07-10 08:26:55 -05:00
Adam Porter
51a472ffa8 Add: --sanity-check-form function
Currently unused, but may try to use it in the future to avoid
confusing problems.
2018-06-08 18:06:31 -05:00
Adam Porter
27fb5f0852 Comment: Add MAYBE 2018-06-08 18:06:24 -05:00
Adam Porter
86d2e38802 Add: (org-ql--fmap) Add debug declaration 2018-06-08 18:05:52 -05:00
Adam Porter
a134e34fd8 Change: Improve TODO grouping 2018-06-08 18:05:17 -05:00
Adam Porter
73925c8f1c Change: Use org-done-keywords instead of org-done-keywords-for-agenda
This should fix a bug, and it seems like the more correct thing to do.
2018-06-08 18:04:01 -05:00
Adam Porter
977e9aa0a2 Change: Enable lexical-binding
Hopefully this doesn't break anything...
2018-06-08 18:03:49 -05:00
Adam Porter
1143414f67 Change: (--date<) Use macrolet instead of flet 2018-05-24 10:04:34 -05:00
Adam Porter
f19f2a4cb4 Fix: Tag inheritance
Hardcoded on for now.
2018-05-24 10:00:20 -05:00
Adam Porter
005ad636b2 Change: Rename org-agenda-ng--date-p -> org-ql--date-p 2018-05-24 09:59:00 -05:00
Adam Porter
afad077b04 Change: Improve error message 2018-05-24 09:58:23 -05:00
Adam Porter
52a1deffa2 Change: Error if file can't be opened 2018-05-24 09:50:46 -05:00
Adam Porter
fd00eb6bb5 Change: second -> cadr 2018-05-24 09:50:07 -05:00
Adam Porter
aa07803635 Add notes 2018-05-24 09:49:24 -05:00
Adam Porter
6624837aa2 Change: Read files or buffers 2018-05-23 10:38:35 -05:00
Adam Porter
a3cb114f71 Add: (org-ql) Optionally don't widen buffers 2018-05-23 07:49:44 -05:00
Adam Porter
d722e4db72 Fix: (--add-priority-face) match-string
Oops...
2018-05-23 07:26:03 -05:00
Adam Porter
e04c1212a0 Tidy: Footer 2018-05-23 07:03:37 -05:00
Adam Porter
edc9958aa1 Add: Sorting by TODO keyword 2018-05-23 07:03:28 -05:00
Adam Porter
70573b98c5 Fix: Remove unnecessary list from default action
Not sure why I had put that in there...
2018-05-23 07:01:29 -05:00
Adam Porter
d826425fd7 Add: Sorting for org-ql 2018-05-23 05:04:40 -05:00
Adam Porter
1ccbe008ac (org-ql) Remove sharp-quote from action-fn
That should be specified from the macro call, not here.
2018-05-22 06:27:53 -05:00
Adam Porter
d1f26eec2f (org-ql--priority-p) Convert to function
I don't remember why I had made it a macro, but it needs to be a
function so it can be called correctly in org-ql--query.
2018-05-22 06:27:21 -05:00
Adam Porter
9050b756ba Factor out org-ql into separate file 2018-05-11 16:40:40 -05:00