Je vois le même problème. En creusant un peu, je pense avoir identifié le problème. Cependant, je ne sais pas à qui cela doit être signalé.
Le problème est dans la fonction org-babel-execute: clojure. Cette fonction a le bit de code suivant
(setq result
(nrepl-dict-get
(nrepl-sync-request:eval
expanded (cider-current-connection) (cider-current-session))
(if (or (member "output" result-params)
(member "pp" result-params))
"out"
"value")))
Le problème réside dans l'appel à nrepl-sync-request: eval. La documentation indique pour cette fonction
(nrepl-sync-request: eval INPUT CONNECTION & NS optionnel)
Envoyez l'ENTRÉE au serveur nREPL de manière synchrone. La demande est envoyée via CONNECTION. Si NS n'est pas nul, incluez-le dans la demande.
Notez le dernier argument facultatif NS. Ceci est censé être un espace de noms clojure. Cependant, la fonction org-babel-execute: clojure appelle cette fonction avec la sortie de cider-current-session, qui renvoie un ID unique représentant la session en cours. Par conséquent, l'appel renvoie une structure de données avec une erreur et aucune sortie (peut-être qu'une gestion des erreurs est requise). Le résultat renvoyé est
(dict status (namespace-not-found done error done state state) id 17 session 43e9fd6c-82ed-49fe-9624-0cfc6f56f8b1 changed-namespaces (dict) repl-type cljclj)
Notez l' espace de noms introuvable
Soit l'argument devrait être un appel à (cider-current-ns), soit il devrait simplement être laissé de côté car je ne vois pas comment vous pouvez passer l'espace de noms dans le cadre de l'évaluation du bloc.
EDIT: voici un simple patch qui semble résoudre le problème. Généré par rapport au responsable actuel du référentiel org git
---
lisp/ob-clojure.el | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lisp/ob-clojure.el b/lisp/ob-clojure.el
index d407105..e542a29 100644
--- a/lisp/ob-clojure.el
+++ b/lisp/ob-clojure.el
@@ -44,6 +44,7 @@
(declare-function cider-current-connection "ext:cider-client" (&optional type))
(declare-function cider-current-session "ext:cider-client" ())
+(declare-function cider-current-ns "ext:cider-client" ())
(declare-function nrepl--merge "ext:nrepl-client" (dict1 dict2))
(declare-function nrepl-dict-get "ext:nrepl-client" (dict key))
(declare-function nrepl-dict-put "ext:nrepl-client" (dict key value))
@@ -118,7 +119,7 @@ using the :show-process parameter."
org-babel-clojure-sync-nrepl-timeout))
(nrepl-sync-request:eval expanded
(cider-current-connection)
- (cider-current-session))))
+ (cider-current-ns))))
(setq result
(concat
(nrepl-dict-get response
@@ -153,7 +154,7 @@ using the :show-process parameter."
;; Update the status of the nREPL output session.
(setq status (nrepl-dict-get response "status")))
(cider-current-connection)
- (cider-current-session))
+ (cider-current-ns))
;; Wait until the nREPL code finished to be processed.
(while (not (member "done" status))
--
2.7.4
A également envoyé le patch à la liste emacs-orgmode
(cider-current-ns)
? Et si oui, où puis-je trouver cette fonction?