Add: helm-org-ql

Squashed commit of the following:

commit f4c2ce37199eb6eab5038e6bdadf5d57f8d88cd3
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 9 16:56:04 2019 -0500

    Docs: Add about helm-org-ql C-x C-s

commit 845a205f7b17904cb9f8e379dc172787cdd16018
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 9 16:25:46 2019 -0500

    WIP: Update docs and add screenshot

commit d8aa8a50169d3ecdee4d85a0f7cd6e1dc26e420e
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 9 16:25:18 2019 -0500

    WIP: Ignore all query errors

    Partially typed queries might cause parsing errors.

commit 782a830a5fb7d77ea2eba3553f46cc4dcac98708
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 9 16:24:57 2019 -0500

    WIP: (deadline) and (priority)

commit d32e3e33f97dfa7593f4376c08eb31b0ccb980a2
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 9 14:26:54 2019 -0500

    WIP: Compatibility

    Trying to make it install and run cleanly even when Helm isn't
    installed.

commit 4bd9943f86ef543903e10f3b58b26c0eb366d869
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 9 13:47:41 2019 -0500

    Add: (helm-org-ql-org-directory)

commit d9a04e142ae68f83201c311fa84a46fa8f4e0ce0
Author: Adam Porter <adam@alphapapa.net>
Date:   Mon Sep 2 12:23:51 2019 -0500

    WIP: Add helm-org-ql.el
This commit is contained in:
Adam Porter 2019-09-09 17:10:46 -05:00
parent 1ff21dc0c8
commit 622f0e6d5e
4 changed files with 264 additions and 42 deletions

View file

@ -737,46 +737,6 @@ Also, maybe instead of having a single =date= selector, I should have =scheduled
(not (done)))))
#+END_SRC
** Helm
#+BEGIN_SRC elisp
(defun helm-org-ql-heading ()
(let* ((path (mapconcat 'identity
(nreverse (org-split-string (org-format-outline-path (org-get-outline-path)
1000 nil "")
""))
org-sticky-header-outline-path-reversed-separator))
(s (concat (org-sticky-header--get-prefix)
(org-get-heading)
org-sticky-header-outline-path-reversed-separator
path)))
(remove-list-of-text-properties 0 (length s) '(line-prefix) s)
(s-trim (if (> (length s) (window-width))
(concat (substring s 0 (- (window-width) 2))
"..")
s))))
(defun helm-org-ql-next ()
(interactive)
(helm :sources (list (helm-build-sync-source "helm-org-ql"
;; :after-init-hook helm-org-rifle-after-init-hook
:candidates (lambda ()
(or (when-let* ((items (org-ql-select (org-agenda-files)
'(todo "NEXT")
:action 'element-with-markers
:sort '(priority date))))
(--map (let* ((marker (org-element-property :org-marker it)))
(org-with-point-at marker
(cons (helm-org-ql-heading) marker)))
items))
(list "NONE")))
:match 'identity
:multiline nil
:volatile t
:action 'helm-org-rifle-actions
:keymap helm-org-rifle-map))))
#+END_SRC
* In the wild
** [[https://github.com/AloisJanicek/.doom.d-2nd][Alois Janicek]]