Ich sehe das gleiche Problem. Ich glaube, ich habe das Problem beim Graben erkannt. Ich bin mir jedoch nicht sicher, wem dies gemeldet werden soll.
Das Problem liegt in der Funktion org-babel-execute: clojure. Diese Funktion hat das folgende Codebit
(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")))
Das Problem liegt im Aufruf von nrepl-sync-request: eval. In der Dokumentation wird diese Funktion angegeben
(nrepl-sync-request: eval INPUT CONNECTION & optional NS)
Senden Sie den INPUT synchron an den nREPL-Server. Die Anfrage wird über CONNECTION versendet. Wenn NS nicht Null ist, nehmen Sie es in die Anforderung auf.
Beachten Sie das letzte optionale Argument NS. Dies soll ein Clojure-Namespace sein. Die Funktion org-babel-execute: clojure ruft diese Funktion jedoch mit der Ausgabe von cider-current-session auf, die eine eindeutige ID zurückgibt, die die aktuelle Sitzung darstellt. Infolgedessen gibt der Aufruf eine Datenstruktur mit einem Fehler und ohne Ausgabe zurück (möglicherweise ist eine Fehlerbehandlung erforderlich). Das zurückgegebene Ergebnis ist
(dict status (namespace-not-found done error done state state) id 17 session 43e9fd6c-82ed-49fe-9624-0cfc6f56f8b1 changed-namespaces (dict) repl-type cljclj)
Beachten Sie den nicht gefundenen Namespace
Entweder sollte das Argument ein Aufruf von (cider-current-ns) sein, oder es sollte einfach weggelassen werden, da ich nicht sehe, wie Sie den Namespace als Teil der Blockbewertung übergeben können.
BEARBEITEN: Hier ist ein einfacher Patch, der das Problem zu beheben scheint. Generiert gegen den aktuellen Leiter von org git repo
---
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
Schickte den Patch auch an die emacs-orgmode-Liste
(cider-current-ns)
? Und wenn ja, wo finde ich diese Funktion?