summaryrefslogtreecommitdiff
path: root/modules/org-babel-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-25 14:37:40 -0500
committerCraig Jennings <c@cjennings.net>2024-04-25 14:37:40 -0500
commita5555afaf09be4c023f49661d48de803b2586927 (patch)
tree78625656fea7df312ed9a4467e2e899433e16998 /modules/org-babel-config.el
parent80de20b443c7a3cbc9283bb64380539d80c61cf8 (diff)
re-organized org modules using use-package + maintenance work
- updated packages - removed :after org-contrib references - added ob-awk, sed, scheme, and shell backends - make v play with mpv in elfeed search mode map - added abbrevs
Diffstat (limited to 'modules/org-babel-config.el')
-rw-r--r--modules/org-babel-config.el189
1 files changed, 119 insertions, 70 deletions
diff --git a/modules/org-babel-config.el b/modules/org-babel-config.el
index dfb9ca14..01b1e5a1 100644
--- a/modules/org-babel-config.el
+++ b/modules/org-babel-config.el
@@ -5,84 +5,133 @@
;;; Code:
-(with-eval-after-load 'org
- (require 'ob-core)
-
- ;; ------------------- Babel Execution Confirmation Toggle -------------------
- ;; org-babel verifies before each execution
-
- (defun babel-confirm (flag)
- "Report the setting of org-confirm-babel-evaluate.
- If invoked with C-u, toggle the setting."
- (interactive "P")
- (if (equal flag '(4))
- (setq org-confirm-babel-evaluate (not org-confirm-babel-evaluate)))
- (message "Babel evaluation confirmation is %s"
- (if org-confirm-babel-evaluate "on" "off")))
-
- ;; ---------------------------- Org Babel Languages ----------------------------
- ;; create executable code blocks in a language within org-mode
-
- ;; (org-babel-do-load-languages
- ;; 'org-babel-load-languages
- ;; '((shell . t)))
-
- (use-package ob-python
- :ensure nil ;; built-in
- :defer .5
- :after org-contrib
- :commands (org-babel-execute:python))
-
- (use-package ob-emacs-lisp
- :ensure nil ;; built-in
- :defer .5
- :commands
- (org-babel-execute:emacs-lisp
- org-babel-expand-body:emacs-lisp))
-
- (use-package ob-dot
- :ensure nil ;; built-in
- :defer .5
- :commands
- (org-babel-execute:dot
- org-babel-expand-body:dot)
- :config
- ;; https://stackoverflow.com/questions/16770868/org-babel-doesnt-load-graphviz-editing-mode-for-dot-sources
- (add-to-list 'org-src-lang-modes (quote ("dot" . graphviz-dot))))
-
- ;; --------------------------------- Org-Tempo ---------------------------------
- ;; expands snippets to babel code blocks using templates
-
- (use-package org-tempo
- :defer .5
- :ensure nil ;; built-in
- :after org
- :config
- (add-to-list 'org-structure-template-alist '("awk" . "src awk"))
- (add-to-list 'org-structure-template-alist '("bash" . "src bash"))
- (add-to-list 'org-structure-template-alist '("dot" . "src dot :file temp.png :cmdline -Kdot -Tpng"))
- (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
- (add-to-list 'org-structure-template-alist '("json" . "src json"))
- (add-to-list 'org-structure-template-alist '("latex" . "src latex"))
- (add-to-list 'org-structure-template-alist '("sicp" . "src racket :lang sicp"))
- (add-to-list 'org-structure-template-alist '("py" . "src python"))
- (add-to-list 'org-structure-template-alist '("sh" . "src sh"))
- (add-to-list 'org-structure-template-alist '("yaml" . "src yaml")))
-
- ;; ---------------------------- Org Babel Settings ---------------------------
- ;; general org babel settings
-
+;; ------------------------------- Org Babel Core ------------------------------
+;; general org babel settings
+
+(use-package ob-core
+ :ensure nil ;; built-in
+ :after org
+ :defer .5
+ :hook
+ (org-babel-after-execute-hook . org-redisplay-inline-images) ;; for seeing inline dotgraph images
+ :config
(setq org-src-fontify-natively t) ;; fontify the code in blocks
(setq org-src-tab-acts-natively t) ;; tabs act like in language major mode buffer
(setq org-src-window-setup 'current-window) ;; don't split window when source editing wih C-c '
(setq org-confirm-babel-evaluate nil) ;; just evaluate the source code
(setq org-babel-default-header-args
(cons '(:tangle . "yes")
- (assq-delete-all :tangle org-babel-default-header-args))) ;; default header args for babel
- (add-hook 'org-babel-after-execute-hook 'org-redisplay-inline-images) ;; for seeing inline dotgraph images
+ (assq-delete-all :tangle org-babel-default-header-args)))) ;; default header args for babel
+
- ) ;; end with-eval-after-load
+;; ------------------- Babel Execution Confirmation Toggle -------------------
+;; org-babel verifies before each execution
+(defun babel-confirm (flag)
+ "Report the setting of org-confirm-babel-evaluate.
+ If invoked with C-u, toggle the setting."
+ (interactive "P")
+ (if (equal flag '(4))
+ (setq org-confirm-babel-evaluate (not org-confirm-babel-evaluate)))
+ (message "Babel evaluation confirmation is %s"
+ (if org-confirm-babel-evaluate "on" "off")))
+
+
+;; ---------------------------- Org Babel Languages ----------------------------
+;; create executable code blocks in a language within org-mode
+
+(use-package ob-awk
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:awk
+ org-babel-expand-body:awk))
+
+(use-package ob-dot
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:dot
+ org-babel-expand-body:dot)
+ :config
+ ;; https://stackoverflow.com/questions/16770868/org-babel-doesnt-load-graphviz-editing-mode-for-dot-sources
+ (add-to-list 'org-src-lang-modes (quote ("dot" . graphviz-dot))))
+
+(use-package ob-emacs-lisp
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:emacs-lisp
+ org-babel-expand-body:emacs-lisp))
+
+(use-package ob-latex
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:latex
+ org-babel-expand-body:latex))
+
+(use-package ob-python
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:python
+ org-babel-variable-assignments:python
+ org-babel-load-session:python
+ org-babel-prep-session:python))
+
+(use-package ob-scheme
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:scheme
+ org-babel-expand-body:scheme))
+
+;; allows for shell, bash, and fish
+(use-package ob-shell
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands
+ (org-babel-execute:shell
+ org-babel-prep-session:shell
+ org-babel-load-session:shell
+ org-babel-variable-assignments:shell))
+
+(use-package ob-sed
+ :ensure nil ;; built-in
+ :defer .5
+ :after ob-core
+ :commands (org-babel-execute:sed))
+
+;; --------------------------------- Org-Tempo ---------------------------------
+;; expands snippets to babel code blocks using templates
+
+(use-package org-tempo
+ :defer .5
+ :ensure nil ;; built-in
+ :after ob-core
+ :config
+ (add-to-list 'org-structure-template-alist '("awk" . "src awk"))
+ (add-to-list 'org-structure-template-alist '("sed" . "src sed"))
+ (add-to-list 'org-structure-template-alist '("bash" . "src bash"))
+ (add-to-list 'org-structure-template-alist '("dot" . "src dot :file temp.png :cmdline -Kdot -Tpng"))
+ (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
+ (add-to-list 'org-structure-template-alist '("json" . "src json"))
+ (add-to-list 'org-structure-template-alist '("latex" . "src latex"))
+ (add-to-list 'org-structure-template-alist '("py" . "src python"))
+ (add-to-list 'org-structure-template-alist '("scheme" . "src scheme"))
+ (add-to-list 'org-structure-template-alist '("shell" . "src shell"))
+ (add-to-list 'org-structure-template-alist '("yaml" . "src yaml")))
+
+;; requires ob-racket, not yet in repositories
+;; (add-to-list 'org-structure-template-alist '("sicp" . "src racket :lang sicp"))
(provide 'org-babel-config)
;;; org-babel-config.el ends here.