Now I get the error: "wrong number of arguments..." :D

El mar., 17 nov. 2020 a las 15:13, Ihor Radchenko (<yantar92@gmail.com>) escribió:
> I tried this but I get: "symbol's function definition is void:
>  org-trigger-doing"

Oops. That's the old function name. Should be

(add-hook 'org-trigger-hook #'org-archive-repeated-task)

Best,
Ihor


Gerardo Moro <gerardomoro37@gmail.com> writes:

> Thanks for the prompt reply!
> I tried this but I get: "symbol's function definition is void:
>  org-trigger-doing"
>
> El mar., 17 nov. 2020 a las 14:32, Ihor Radchenko (<yantar92@gmail.com>)
> escribió:
>
>> > Thanks, I don't know how to go about doing that, so I would have to rely
>> on
>> > others wanting to help me if they consider this to be also useful to them
>> > (which I definitely think it is!).
>>
>> Try the following code. It should archive any repeated task once it is
>> marked DONE.
>>
>> (defun org-archive-repeated-task (arg)
>>   "Add a copy of the recurring task marked DONE to archive."
>>   (when (and (eq (plist-get arg :type) 'todo-state-change)
>>              (string= (plist-get arg :to) "DONE")) ;; The state is changed
>> to DONE
>>     (let* ((pos (plist-get arg :position))
>>            (repeater (org-with-point-at pos (org-get-repeat))))
>>       (when repeater ;; Only consider tasks with repeater timestamp
>> anywhere in the task body
>>         (my/org-archive-without-delete)))))
>> (add-hook 'org-trigger-hook #'org-trigger-doing)
>>
>> Best,
>> Ihor
>>