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

Commit 21a401f

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 21a401f

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Diff for: packages.el

+38
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
'(
3434
company
3535
jupyter
36+
org
3637
))
3738

3839
(defun jupyter/init-jupyter ()
@@ -41,10 +42,17 @@
4142
:defer t
4243
:init
4344
(progn
45+
(spacemacs/declare-prefix "aj" "jupyter")
46+
(spacemacs/declare-prefix "ajo" "org-jupyter")
4447
(spacemacs/set-leader-keys
4548
"aja" 'jupyter-repl-associate-buffer
4649
"ajc" 'jupyter-connect-repl
4750
"ajr" 'jupyter-run-repl
51+
"ajoo" 'jupyter/override-src-block-lang
52+
"ajoO" 'jupyter/override-all-src-block-lang
53+
"ajor" 'jupyter/restore-src-block-lang
54+
"ajoR" 'jupyter/restore-all-src-block-lang
55+
"ajos" 'org-babel-jupyter-scratch-buffer
4856
"ajs" 'jupyter-server-list-kernels
4957
)
5058
(spacemacs/set-leader-keys-for-major-mode 'jupyter-repl-mode
@@ -72,4 +80,34 @@
7280
(defun jupyter/post-init-company ()
7381
(spacemacs|add-company-backends :backends company-capf :modes jupyter-repl-mode))
7482

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

0 commit comments

Comments
 (0)