diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /modules/org-babel-config.el | |
new repository
Diffstat (limited to 'modules/org-babel-config.el')
| -rw-r--r-- | modules/org-babel-config.el | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/modules/org-babel-config.el b/modules/org-babel-config.el new file mode 100644 index 00000000..dfb9ca14 --- /dev/null +++ b/modules/org-babel-config.el @@ -0,0 +1,88 @@ +;;; org-babel-config.el --- Org Babel/Tempo Config -*- lexical-binding: t; -*- + +;;; Commentary: +;; All Org-Babel and Org-Tempo Packages, Settings, and Languages. + +;;; 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 + + (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 + + ) ;; end with-eval-after-load + + +(provide 'org-babel-config) +;;; org-babel-config.el ends here. |
