Karl Voit <[email protected]> writes:
> * Karl Voit <[email protected]> wrote:
>> * Carsten Dominik <[email protected]> wrote:
>>
>>> Since ord-depend was only proof of concept, we could also think a bit more
>>> broadly about what it should be able to do. Is there specific
>>> functionality it also should support, besides the TRIGGER/BLOCKER functions
>>> it has right now?
[...]
> 1 Improvement: ID Picker
> ========================
>
> First of all, I'd like to see some kind of ID picker when defining
> `:TRIGGER:' and `:BLOCKER:' dependencies.
>
> This should work like this: after setting up the task in headings and
> giving them IDs, I'd like to invoke a "I want to define a
> dependency"-command. It first asks me what property I want to set:
> `:TRIGGER:' or `:BLOCKER:'.
>
> Then I get asked to select any ID which could be found within the same
> sub-hierarchy (or even in all files?).
>
> After being asked for the KEYWORD to be set for `:TRIGGER:'
> dependencies (if applicable), the property is added to the current
> heading accordingly.
>
> This would drastically improve creating dependency definitions and
> prevent typing errors in the first place.
I like this a lot, for more uses than just org-depend, and it would be
very easy to implement. We've got `org-property-set-functions-alist' for
using special functions to read the values of special properties, and
we've got `org-id-get-with-outline-(drilling|path-completion), so it's
pretty much already done!
(defun my-trigger-property-prompt ()
(when (derived-mode-p 'org-mode)
(let ((id (org-id-get-with-outline-drilling))
(kw (org-completing-read "Keyword: " org-todo-keywords-1)))
(do-something-with-id-and-kw))))
(push '("TRIGGER" . my-trigger-property-prompt)
org-property-set-functions-alist)
I don't actually know how the TRIGGER property is meant to be formatted
(and I didn't really test the above), but something very near to the
above should do what you want.
Eric