diff options
| author | Steve Lee <me@xiangyangli.com> | 2017-12-13 03:31:27 +0800 |
|---|---|---|
| committer | Steve Lee <me@xiangyangli.com> | 2017-12-13 03:31:27 +0800 |
| commit | 32e4fcbecdeece101252cafa6cc72919e46bb6a6 (patch) | |
| tree | c545ae050dee36b9fa5907a729c0cab0234a33a3 /.emacs.d/elpa/org-20171120/ob-shen.el | |
| parent | 6a57744994be173666c9de1fb0a16ed888b562a8 (diff) | |
| download | dotfiles-32e4fcbecdeece101252cafa6cc72919e46bb6a6.tar.xz dotfiles-32e4fcbecdeece101252cafa6cc72919e46bb6a6.zip | |
something
Diffstat (limited to '.emacs.d/elpa/org-20171120/ob-shen.el')
| -rw-r--r-- | .emacs.d/elpa/org-20171120/ob-shen.el | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/.emacs.d/elpa/org-20171120/ob-shen.el b/.emacs.d/elpa/org-20171120/ob-shen.el deleted file mode 100644 index 6a4a3f1..0000000 --- a/.emacs.d/elpa/org-20171120/ob-shen.el +++ /dev/null @@ -1,78 +0,0 @@ -;;; ob-shen.el --- Babel Functions for Shen -*- lexical-binding: t; -*- - -;; Copyright (C) 2010-2017 Free Software Foundation, Inc. - -;; Author: Eric Schulte -;; Keywords: literate programming, reproducible research, shen -;; Homepage: http://orgmode.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs 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. - -;; GNU Emacs 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. If not, see <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Currently this only works using session evaluation as there is no -;; defined method for executing shen code outside of a session. - -;;; Requirements: - -;; - shen-mode and inf-shen will soon be available through the GNU -;; elpa, however in the interim they are available at -;; https://github.com/eschulte/shen-mode - -;;; Code: -(require 'ob) - -(declare-function shen-eval-defun "ext:inf-shen" (&optional and-go)) -(declare-function org-babel-ruby-var-to-ruby "ob-ruby" (var)) - -(defvar org-babel-default-header-args:shen '() - "Default header arguments for shen code blocks.") - -(defun org-babel-expand-body:shen (body params) - "Expand BODY according to PARAMS, return the expanded body." - (let ((vars (org-babel--get-vars params))) - (if (> (length vars) 0) - (concat "(let " - (mapconcat (lambda (var) - (format "%s %s" (car var) - (org-babel-shen-var-to-shen (cdr var)))) - vars " ") - body ")") - body))) - -(defun org-babel-shen-var-to-shen (var) - "Convert VAR into a shen variable." - (if (listp var) - (concat "[" (mapconcat #'org-babel-ruby-var-to-ruby var " ") "]") - (format "%S" var))) - -(defun org-babel-execute:shen (body params) - "Execute a block of Shen code with org-babel. -This function is called by `org-babel-execute-src-block'" - (require 'inf-shen) - (let* ((result-params (cdr (assq :result-params params))) - (full-body (org-babel-expand-body:shen body params))) - (let ((results - (with-temp-buffer - (insert full-body) - (call-interactively #'shen-eval-defun)))) - (org-babel-result-cond result-params - results - (condition-case nil (org-babel-script-escape results) - (error results)))))) - -(provide 'ob-shen) -;;; ob-shen.el ends here |
