Refactor/Add: agenda->view/search, view-sidebar

Squash-merging branch wip/refactor-org-ql-agenda.

Squashed commit of the following:

commit 60d73b071830ab8f0355687a1d325a4791eeb29b
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Sep 18 04:30:55 2019 -0500

    WIP: Tidy

commit 36f65638cdb585553c0f90ef48b3908700461014
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Sep 18 04:24:45 2019 -0500

    WIP: Tidy

commit f7bae3ac8c250c4e42b79157656603da91185574
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Sep 18 04:10:36 2019 -0500

    WIP: Tidy

commit 8791b0de3404cfff9e110969b8aa30c753319335
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Sep 18 04:05:18 2019 -0500

    WIP: Remove unnecessary defvars

commit 0dd8d259a31e279ad76188640f6731f8fdf0ae88
Author: Adam Porter <adam@alphapapa.net>
Date:   Wed Sep 18 04:03:27 2019 -0500

    WIP: (org-ql-search.el) Require org-super-agenda

commit 76981fbcd3eba7d1b8d096c094a013953c2d3333
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 16 19:49:07 2019 -0500

    WIP: More refactoring

commit a3e58f4d44aa804bfd9ff537aca53647dd068329
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 16 19:21:20 2019 -0500

    WIP: View list sidebar

commit 56f27cd87f0ef246d31328e4c7a41ad2a1c57553
Author: Adam Porter <adam@alphapapa.net>
Date:   Sat Aug 31 22:25:09 2019 -0500

    WIP: Split org-ql-agenda into org-ql-view and org-ql-search
This commit is contained in:
Adam Porter 2019-09-22 20:59:00 -05:00
parent 8f2a02264f
commit 5864c28cdb
7 changed files with 828 additions and 716 deletions

View file

@ -118,23 +118,13 @@ Installing with [[https://framagit.org/steckerhalter/quelpa][Quelpa]] is easy:
* Usage
The functionality provided may be grouped by:
+ *Interactive commands:* ~org-ql-search~, ~org-ql-view~, =org-ql-sparse-tree=, =helm-org-ql=.
+ *Non-interactive functions and macros:*
- ~org-ql~ (macro)
- ~org-ql-select~ (function)
- ~org-ql-query~ (function)
- ~org-ql-agenda~ (macro)
- ~org-ql-block~ (agenda function)
Alternatively, they may be grouped by:
These commands and functions are included:
+ *Showing an agenda-like view:*
- ~org-ql-search~ (command)
- ~org-ql-view~ (command)
- ~org-ql-block~ (agenda function)
- ~org-ql-agenda~ (macro)
- =org-ql-view-sidebar= (command)
- ~org-ql-block~ (agenda block function)
+ *Showing a tree in a buffer:*
- =org-ql-sparse-tree= (command)
+ *Showing results with Helm*:
@ -193,6 +183,12 @@ Note also that queries in this command are specially handled so that quotes arou
Choose and display a view stored in ~org-ql-views~.
*** org-ql-view-sidebar
Show a sidebar window listing views stored in =org-ql-views= for easy access. In the sidebar, press =RET= or =mouse-1= to show the view at point, and press =c= to customize the view at point.
[[images/org-ql-view-sidebar.gif]]
*** org-ql-view-recent-items
Show items in ~FILES~ from last ~DAYS~ days with timestamps of ~TYPE~. ~TYPE~ may be ~ts~, ~ts-active~, ~ts-inactive~, ~clocked~, ~closed~, ~deadline~, ~planning~, or ~scheduled~. =FILES= defaults to those returned by the function =org-agenda-files=.
@ -476,6 +472,7 @@ Expands into a call to ~org-ql-select~ with the same arguments. For convenience
*Added*
+ Command =helm-org-ql=.
+ Command =org-ql-sparse-tree=, like =org-sparse-tree= for =org-ql= queries. (Thanks to [[https://github.com/akirak][Akira Komamura]].)
+ Command =org-ql-view-sidebar=.
+ Per-buffer, per-heading tag caching, which increases the speed of tags-related queries by 6-7x.
+ More tags-related predicates and aliases:
- For inherited tags: =tags-inherited=, =inherited-tags=, =tags-i=, =itags=.
@ -483,15 +480,23 @@ Expands into a call to ~org-ql-select~ with the same arguments. For convenience
- =tags-all=, =tags&=: Matches all given tags using boolean =AND= (rather than boolean =OR=, which the =tags= predicate uses).
+ Variable =org-ql-block-header=, which overrides the default header in =org-ql-block= agenda blocks.
+ Predicate =(path)=.
+ Option =org-ql-views= may now be customized in a guided, structured way with the customization UI (e.g. =M-x customize-option RET org-ql-views RET=, or press =c= in the =org-ql-view-sidebar= buffer).
*Changed*
+ Predicate =heading= now accepts multiple regexps, which are matched with boolean =AND=.
+ Predicate =regexp= now matches its regexp arguments with boolean =AND=.
+ Package =org-super-agenda= is now a dependency. This removes the need for awkward code to handle the case where it's not installed, and makes grouping features always available. Of course, the global minor mode =org-super-agenda-mode= is not activated by =org-ql=, so no behavior is changed in Org Agenda or =org-ql=; it only means that commands like =org-ql-search= will always provide grouping when called with the appropriate arguments.
*Removed*
+ Macro =org-ql-agenda=. Instead, use function =org-ql-search=. See also command =org-ql-view=, etc.
*Fixed*
+ Predicate =heading= now matches only against heading text, i.e. not including tags at the end of the line, to-do keyword, etc.
+ Predicate =todo= now matches case-sensitively, avoiding non-todo-keyword matches (e.g. a heading which begins =Waiting on= will no longer match for a todo keyword =WAITING=).
*Internal*
+ Refactored code from file =org-ql-agenda.el= into files =org-ql-search.el= and =org-ql-view.el=. Function and variable names have been changed accordingly.
** 0.2.1
*Fixed*