|
|
@ -0,0 +1,99 @@ |
|
|
|
|
|
;;; prelude-literate-programming.el --- Emacs Prelude: Literate Programming Support |
|
|
|
|
|
;; |
|
|
|
|
|
;; Author: Koustubh Sinkar |
|
|
|
|
|
;; Version: 1.0.0 |
|
|
|
|
|
;; Keywords: literate programming |
|
|
|
|
|
|
|
|
|
|
|
;; This file is not part of GNU Emacs. |
|
|
|
|
|
|
|
|
|
|
|
;;; Commentary: |
|
|
|
|
|
|
|
|
|
|
|
;; Prelude configuration for literate programming |
|
|
|
|
|
|
|
|
|
|
|
;;; License: |
|
|
|
|
|
|
|
|
|
|
|
;; This program is free software; you can redistribute it and/or |
|
|
|
|
|
;; modify it under the terms of the GNU General Public License |
|
|
|
|
|
;; as published by the Free Software Foundation; either version 3 |
|
|
|
|
|
;; of the License, or (at your option) any later version. |
|
|
|
|
|
;; |
|
|
|
|
|
;; This program is distributed in the hope that it will be useful, |
|
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
|
|
;; GNU General Public License for more details. |
|
|
|
|
|
;; |
|
|
|
|
|
;; You should have received a copy of the GNU General Public License |
|
|
|
|
|
;; along with GNU Emacs; see the file COPYING. If not, write to the |
|
|
|
|
|
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
|
|
|
|
|
;; Boston, MA 02110-1301, USA. |
|
|
|
|
|
|
|
|
|
|
|
;;; Code: |
|
|
|
|
|
|
|
|
|
|
|
(defvar prelude-ipynb-packages |
|
|
|
|
|
'(code-cells ; file mode for code-cells |
|
|
|
|
|
ein ; Emacs Ipython Notebook (Jupyter Client) |
|
|
|
|
|
elpy ; emacs python development environment |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
|
|
(defvar prelude-ob-packages |
|
|
|
|
|
'(ob-async ; asynchronous execution of code-blocks |
|
|
|
|
|
ob-ipython ; for python and ipython |
|
|
|
|
|
ob-tmux ; for shell |
|
|
|
|
|
ob-deno ; for javascript |
|
|
|
|
|
ob-typescript |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(prelude-require-packages |
|
|
|
|
|
(append prelude-ipynb-packages prelude-ob-packages)) |
|
|
|
|
|
|
|
|
|
|
|
(setq prelude-ob-loader-list |
|
|
|
|
|
'((python . t) |
|
|
|
|
|
(ipython . t) |
|
|
|
|
|
(shell . t) |
|
|
|
|
|
(js . t) |
|
|
|
|
|
(typescript . t) |
|
|
|
|
|
;; Include other languages here... |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
|
|
;; Run/highlight code using babel in org-mode |
|
|
|
|
|
(org-babel-do-load-languages |
|
|
|
|
|
'org-babel-load-languages prelude-ob-loader-list) |
|
|
|
|
|
|
|
|
|
|
|
;; Syntax highlight in #+BEGIN_SRC blocks |
|
|
|
|
|
(setq org-src-fontify-natively t) |
|
|
|
|
|
|
|
|
|
|
|
;; Don't prompt before running code in org |
|
|
|
|
|
(setq org-confirm-babel-evaluate nil) |
|
|
|
|
|
|
|
|
|
|
|
;; Fix an incompatibility between the ob-async and ob-ipython packages |
|
|
|
|
|
(setq ob-async-no-async-languages-alist '("ipython")) |
|
|
|
|
|
|
|
|
|
|
|
(defvar org-babel-language-list |
|
|
|
|
|
'(ob-cfengine3 |
|
|
|
|
|
ob-clojurescript |
|
|
|
|
|
ob-coffee |
|
|
|
|
|
ob-dao |
|
|
|
|
|
ob-diagrams |
|
|
|
|
|
ob-elixir |
|
|
|
|
|
ob-elm |
|
|
|
|
|
ob-go |
|
|
|
|
|
ob-graphql |
|
|
|
|
|
ob-http |
|
|
|
|
|
ob-ipython |
|
|
|
|
|
ob-julia-vterm |
|
|
|
|
|
ob-kotlin |
|
|
|
|
|
ob-mongo |
|
|
|
|
|
ob-prolog |
|
|
|
|
|
ob-restclient |
|
|
|
|
|
ob-rust |
|
|
|
|
|
ob-sml |
|
|
|
|
|
ob-sql-mode |
|
|
|
|
|
ob-translate |
|
|
|
|
|
ob-typescript |
|
|
|
|
|
ob-uart |
|
|
|
|
|
)) |
|
|
|
|
|
;;; TODO Write a function to enable org-babel for each function |
|
|
|
|
|
|
|
|
|
|
|
(provide 'prelude-literate-programming) |
|
|
|
|
|
;;; prelude-literate-programming.el ends here |