Browse Source

ob-js: support :session for js-comint REPL.

* lisp/ob-js.el (org-babel-js-cmd): Add js-comint.
(org-babel-js-initiate-session): Add support for js-comint.
stardiviner 7 years ago
parent
commit
5ee6c45953
2 changed files with 15 additions and 1 deletions
  1. 4 0
      etc/ORG-NEWS
  2. 11 1
      lisp/ob-js.el

+ 4 - 0
etc/ORG-NEWS

@@ -113,6 +113,10 @@ now sort according to the locale’s collation rules instead of by
 code-point.
 
 ** New features
+*** Add ~:session~ support of ob-js for js-comint
+#+begin_src js :session "*Javascript REPL*"
+console.log("stardiviner")
+#+end_src
 *** Add ~:session~ support of ob-js for Indium
 #+begin_src js :session "*JS REPL*"
 console.log("stardiviner")

+ 11 - 1
lisp/ob-js.el

@@ -59,7 +59,8 @@
   :type '(choice (const "node")
 		 (const "mozrepl")
 		 (const "skewer-mode")
-		 (const "indium"))
+		 (const "indium")
+		 (const "js-comint"))
   :safe #'stringp)
 
 (defvar org-babel-js-function-wrapper
@@ -169,6 +170,15 @@ then create.  Return the initialized session."
 	(httpd-start)
 	(run-skewer)
 	session-buffer)))
+   ((string= "*Javascript REPL*" session)
+    (require 'js-comint)
+    (let ((session-buffer "*Javascript REPL*"))
+      (if (and (org-babel-comint-buffer-livep (get-buffer session-buffer))
+	       (comint-check-proc session-buffer))
+	  session-buffer
+	(call-interactively 'run-js)
+	(sit-for .5)
+	session-buffer)))
    ((string= "mozrepl" org-babel-js-cmd)
     (require 'moz)
     (let ((session-buffer (save-window-excursion