나는 그가 같은 문제를보고있다. 약간의 파고에서, 나는 문제를 식별했다고 생각합니다. 그러나 이것이 누구에게보고되어야하는지 확실하지 않습니다.
문제는 org-babel-execute : clojure 함수에 있습니다. 이 함수에는 다음과 같은 코드가 있습니다.
(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")))
문제는 nrepl-sync-request : eval을 호출하는 것입니다. 이 기능에 대한 설명서 상태
(nrepl-sync-request : eval 입력 연결 및 선택적인 NS)
입력을 nREPL 서버에 동기식으로 전송하십시오. 요청은 CONNECTION을 통해 발송됩니다. NS가 0이 아닌 경우 요청에 포함하십시오.
마지막 선택적 인수 NS에 주목하십시오. 이것은 클로저 네임 스페이스 여야합니다. 그러나 org-babel-execute : clojure 함수는 cider-current-session의 출력으로이 함수를 호출합니다. 현재 세션을 나타내는 고유 ID를 리턴합니다. 결과적으로 호출은 오류가 있고 데이터가없는 데이터 구조를 리턴합니다 (아마도 일부 오류 처리가 필요함). 반환 된 결과는
(dict status (namespace-not-found done error done state state) id 17 session 43e9fd6c-82ed-49fe-9624-0cfc6f56f8b1 changed-namespaces (dict) repl-type cljclj)
노트 네임 스페이스가 아니라 발견 된을
인수는 (cider-current-ns)에 대한 호출이거나 블록 평가의 일부로 네임 스페이스를 전달할 수있는 방법을 알 수 없으므로 생략해야합니다.
편집 : 여기에 문제를 해결하는 간단한 패치가 있습니다. 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
또한 패치를 emacs-orgmode 목록으로 보냈습니다.
(cider-current-ns)
있습니까? 그렇다면 해당 기능을 어디에서 찾을 수 있습니까?