diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-25 14:37:40 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-25 14:37:40 -0500 |
| commit | a5555afaf09be4c023f49661d48de803b2586927 (patch) | |
| tree | 78625656fea7df312ed9a4467e2e899433e16998 /modules/org-babel-config.el | |
| parent | 80de20b443c7a3cbc9283bb64380539d80c61cf8 (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.el | 189 |
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. |
