Skip to content
This repository was archived by the owner on Jul 13, 2020. It is now read-only.

Commit a6c5e48

Browse files
committed
add org-mode integration
Have jupyter override (and restore) babels functionality for code blocks of certain source languages.
1 parent a73cae9 commit a6c5e48

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

packages.el

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,17 @@
4141
:defer t
4242
:init
4343
(progn
44+
(spacemacs/declare-prefix "aj" "jupyter")
45+
(spacemacs/declare-prefix "ajo" "org-jupyter")
4446
(spacemacs/set-leader-keys
4547
"aja" 'jupyter-repl-associate-buffer
4648
"ajc" 'jupyter-connect-repl
4749
"ajr" 'jupyter-run-repl
50+
"ajoo" 'jupyter/override-src-block-lang
51+
"ajoO" 'jupyter/override-all-src-block-lang
52+
"ajor" 'jupyter/restore-src-block-lang
53+
"ajoR" 'jupyter/restore-all-src-block-lang
54+
"ajos" 'org-babel-jupyter-scratch-buffer
4855
"ajs" 'jupyter-server-list-kernels
4956
)
5057
(spacemacs/set-leader-keys-for-major-mode 'jupyter-repl-mode
@@ -72,4 +79,34 @@
7279
(defun jupyter/post-init-company ()
7380
(spacemacs|add-company-backends :backends company-capf :modes jupyter-repl-mode))
7481

82+
83+
(defun jupyter/override-src-block-lang ()
84+
"Apply org-babel-jupyter-override-src-block to the selected language "
85+
(interactive)
86+
(let ((lang (read-string "Override Language: ")))
87+
(org-babel-jupyter-override-src-block lang)))
88+
89+
(defun jupyter/restore-src-block-lang ()
90+
"Apply org-babel-jupyter-restore-src-block to the selected language "
91+
(interactive)
92+
(let ((lang (read-string "Restore Language: ")))
93+
(org-babel-jupyter-restore-src-block lang)))
94+
95+
;; TODO these won't work. kernel name is not the same as babel language name
96+
;; need some table to match kernel-name to babel lang name
97+
;; also maybe define new babel langs based on kernels
98+
(defun jupyter/override-all-src-block-lang ()
99+
"Apply org-babel-jupyter-override-src-block to all languages of
100+
installed kernels."
101+
(interactive)
102+
(let ((langs (mapcar 'car (jupyter-available-kernelspecs))))
103+
(mapc 'org-babel-jupyter-override-src-block langs)))
104+
105+
(defun jupyter/restore-all-src-block-lang ()
106+
"Restore all babel languages overridden by jupyter/override-all-src-block-lang"
107+
(interactive)
108+
(let ((langs (mapcar 'car (jupyter-available-kernelspecs))))
109+
(mapc 'org-babel-jupyter-restore-src-block langs)))
110+
111+
75112
;;; packages.el ends here

0 commit comments

Comments
 (0)