From 6cc4c7187272cd5458153ddcd380011db1da4eed Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 4 Nov 2019 00:36:41 -0500 Subject: [PATCH] Initialize Doom in ob-async session #2010 --- modules/lang/org/config.el | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index a93a80512..b77fca444 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -207,7 +207,19 @@ background (and foreground) match the current theme." ;; Fix 'require(...).print is not a function' error from `ob-js' when ;; executing JS src blocks - (setq org-babel-js-function-wrapper "console.log(require('util').inspect(function(){\n%s\n}()));")) + (setq org-babel-js-function-wrapper "console.log(require('util').inspect(function(){\n%s\n}()));") + + ;; Fix #2010: ob-async needs to initialize Doom Emacs at least minimally for + ;; its async babel sessions to run correctly. This cannot be a named function + ;; because it is interpolated directly into a closure to be evaluated on the + ;; async session. + (defadvice! +org-init-doom-during-async-executation-a (orig-fn &rest args) + :around #'ob-async-org-babel-execute-src-block + (let ((ob-async-pre-execute-src-block-hook + ;; Ensure our hook is always first + (cons `(lambda () (load ,(concat doom-emacs-dir "init.el"))) + ob-async-pre-execute-src-block-hook))) + (apply orig-fn args)))) (defun +org-init-babel-lazy-loader-h ()