diff options
author | Sébastien Delafond <sdelafond@gmail.com> | 2016-11-07 10:41:54 +0100 |
---|---|---|
committer | Sébastien Delafond <sdelafond@gmail.com> | 2016-11-07 10:41:54 +0100 |
commit | 1a7cd65ca362047cd97d4127d49108994baebc6c (patch) | |
tree | f18735f3b77120ef2e91043f2f662b03e47ccbb0 /lisp/ob-clojure.el | |
parent | 55074078ca876273e3fa58ee6838cba90d2b6100 (diff) | |
parent | ec84430cf4e09ba25ec675debdf802bc28111e06 (diff) |
Merge tag 'upstream/9.0'
Upstream version 9.0
Diffstat (limited to 'lisp/ob-clojure.el')
-rw-r--r-- | lisp/ob-clojure.el | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el index 5b023e6..72ea77d 100644 --- a/lisp/ob-clojure.el +++ b/lisp/ob-clojure.el @@ -1,4 +1,4 @@ -;;; ob-clojure.el --- org-babel functions for clojure evaluation +;;; ob-clojure.el --- Babel Functions for Clojure -*- lexical-binding: t; -*- ;; Copyright (C) 2009-2016 Free Software Foundation, Inc. @@ -39,15 +39,15 @@ ;; web page: http://technomancy.us/126 ;;; Code: +(require 'cl-lib) (require 'ob) -(eval-when-compile - (require 'cl)) (declare-function cider-current-connection "ext:cider-client" (&optional type)) (declare-function cider-current-session "ext:cider-client" ()) (declare-function nrepl-dict-get "ext:nrepl-client" (dict key)) (declare-function nrepl-sync-request:eval "ext:nrepl-client" (input connection session &optional ns)) +(declare-function org-trim "org" (s &optional keep-lead)) (declare-function slime-eval "ext:slime" (sexp &optional package)) (defvar org-babel-tangle-lang-exts) @@ -67,18 +67,17 @@ (defun org-babel-expand-body:clojure (body params) "Expand BODY according to PARAMS, return the expanded body." - (let* ((vars (mapcar #'cdr (org-babel-get-header params :var))) - (result-params (cdr (assoc :result-params params))) + (let* ((vars (org-babel--get-vars params)) + (result-params (cdr (assq :result-params params))) (print-level nil) (print-length nil) - (body (org-babel-trim - (if (> (length vars) 0) - (concat "(let [" - (mapconcat - (lambda (var) - (format "%S (quote %S)" (car var) (cdr var))) - vars "\n ") - "]\n" body ")") - body)))) + (body (org-trim + (if (null vars) (org-trim body) + (concat "(let [" + (mapconcat + (lambda (var) + (format "%S (quote %S)" (car var) (cdr var))) + vars "\n ") + "]\n" body ")"))))) (if (or (member "code" result-params) (member "pp" result-params)) (format "(clojure.pprint/pprint (do %s))" body) @@ -88,10 +87,10 @@ "Execute a block of Clojure code with Babel." (let ((expanded (org-babel-expand-body:clojure body params)) result) - (case org-babel-clojure-backend + (cl-case org-babel-clojure-backend (cider (require 'cider) - (let ((result-params (cdr (assoc :result-params params)))) + (let ((result-params (cdr (assq :result-params params)))) (setq result (nrepl-dict-get (nrepl-sync-request:eval @@ -108,8 +107,8 @@ (slime-eval `(swank:eval-and-grab-output ,(buffer-substring-no-properties (point-min) (point-max))) - (cdr (assoc :package params))))))) - (org-babel-result-cond (cdr (assoc :result-params params)) + (cdr (assq :package params))))))) + (org-babel-result-cond (cdr (assq :result-params params)) result (condition-case nil (org-babel-script-escape result) (error result))))) |