Ihor Radchenko <yanta...@posteo.net> writes:

> AFAIK, our async code does not support inline blocks.
> CCing the author.
>
> Jack, I am not sure if it is going to be easy to support async inline
> src blocks. If not, we may need to ignore :async argument in inline
> blocks and display a warning.

The following patch seems to fix the issue -- does something like this
seem reasonable?

>From 9a639013cf1a469f41b210c3b2167746f77f58b0 Mon Sep 17 00:00:00 2001
From: Jack Kamm <jackk...@gmail.com>
Date: Sun, 16 Mar 2025 21:12:34 -0700
Subject: [PATCH] Fix async inline babel blocks

---
 lisp/ob-comint.el | 4 ++--
 lisp/ob-core.el   | 6 ++++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/ob-comint.el b/lisp/ob-comint.el
index f0a2c0f58..d457fadb9 100644
--- a/lisp/ob-comint.el
+++ b/lisp/ob-comint.el
@@ -313,7 +313,7 @@ (defun org-babel-comint-async-filter (string)
 			    (save-excursion
 			      (goto-char (point-min))
 			      (when (search-forward tmp-file nil t)
-			        (org-babel-previous-src-block)
+                                (org-babel-previous-src-block-or-inline)
                                 (let* ((info (org-babel-get-src-block-info))
                                        (params (nth 2 info))
                                        (result-params
@@ -364,7 +364,7 @@ (defun org-babel-comint-async-filter (string)
 			       (save-excursion
 			         (goto-char (point-min))
 			         (when (search-forward uuid nil t)
-				   (org-babel-previous-src-block)
+				   (org-babel-previous-src-block-or-inline)
                                    (let* ((info (org-babel-get-src-block-info))
                                           (params (nth 2 info))
                                           (result-params
diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 2f66ab17d..f0d49d530 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -2114,6 +2114,12 @@ (defun org-babel-previous-src-block (&optional arg)
   (interactive "p")
   (org-previous-block arg org-babel-src-block-regexp))
 
+(defun org-babel-previous-src-block-or-inline ()
+  "Jump to previous source block or inline block."
+  (re-search-backward (rx (or (regexp org-babel-src-block-regexp)
+                              ;; copied from `org-element-inline-src-block-parser'.
+                              (regexp "\\_<src_\\([^ \t\n[{]+\\)[{[]")))))
+
 (defvar org-babel-load-languages)
 
 ;;;###autoload
-- 
2.48.1

Reply via email to