Skip Navigation

Complex Capture Template: rx '**' range error?

Hello, friends!

So I have a complex way of capturing TODO tasks for today or week. Someone will probably tell me that there's a package out there somewhere to do this easier, but regardless I would like to figure this out.

Here's the function I use:

 
        (defun org-capture::today-task-tree ()
      "Create a task tree for tasks TODO today."
      (let* ((time-string (format-time-string "<%Y-%m-%d %a>" (current-time)))
             (heading (concat "[%] " time-string))
             (heading-rx
              (rx (group "[" (0+ num) "%]") (0+ space)
                  (group (literal time-string)))))
        (goto-char (point-max))
        (if-let (pnt (re-search-backward
                      heading-rx
                      nil t))
            (goto-char pnt)
          (goto-char (point-max))
          (or (bolp) (insert "\n"))
          (insert "* " heading "\n")
          (beginning-of-line 0))
        (org-end-of-subtree)))


  

And here's the org-capture-templates entry:

 
        ("gt" "Today: A task for today" entry
                         (file+function
                          ,(expand-file-name "~/Documents/Org/GTD/work.org")
                          org-capture::today-task-tree)
                         (file ,(concat my-emacs-dir "capture-templates/datetree-weekly-tasks.tmplt"))
                         :empty-lines-after 1
                         :after-finalize (lambda () (org-update-statistics-cookies t)))


  

And here's the actual capture template that I store in a file in my config:

 
        ** [ ] [#%^{Priority}] %^{Task name}  %(funcall-interactively #'org-deadline nil (current-time)) %^g
        %? %i


  

Now when I'm in that file ~/Documents/Org/GTD/work.org and I run the above function with M-: org-capture::today-task-tree it works fine. An example of what the file will look like it:

 
        * [100%] 2024-04-27 Mon
    ** [X] Do something important this Monday #[A] :work:
        CLOSED: 2024-04-27 Mon 12:42  DEADLINE: 2024-04-27 Mon
    * [%] 2024-04-28 Tues
    ** [ ] Do something else that's not as important #[B] :personal: 
         DEADLINE: 2024-04-27


  

But for whatever reason when I run org-capture and finish the capture with C-c C-c or refile with C-c C-w I get

 
        rx--translate-bounded-repetition: rx ‘**’ range error


  

Which I don't really know what that means nor how to fix it, and I can't really find anything useful via searching the internet at the moment. A possible thing to not is that I disable Org's element caching.

If you want to look at my configuration to dig around some, you can find it here and the part where my configurations for Org-Mode are here.

3 comments