emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] org-depend improvements: ID picker


From: Eric Abrahamsen
Subject: Re: [O] org-depend improvements: ID picker
Date: Sun, 18 Dec 2016 09:49:56 -0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Karl Voit <address@hidden> writes:

> * Karl Voit <address@hidden> wrote:
>> * Carsten Dominik <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]