Saya melihat dia masalah yang sama. Dalam sedikit penggalian, saya pikir saya telah mengidentifikasi masalahnya. Namun, tidak yakin kepada siapa ini harus dilaporkan.
Masalahnya ada di fungsi org-babel-execute: clojure. Fungsi ini memiliki sedikit kode berikut
(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")))
Masalahnya adalah dalam panggilan ke nrepl-sync-request: eval. Status dokumentasi untuk fungsi ini
(nrepl-sync-request: eval INPUT CONNECTION & NS opsional)
Kirim INPUT ke server nREPL secara sinkron. Permintaan dikirim melalui CONNECTION. Jika NS bukan nol, sertakan dalam permintaan.
Perhatikan argumen opsional terakhir NS. Ini seharusnya menjadi namespace clojure. Namun, fungsi org-babel-execute: clojure memanggil fungsi ini dengan output dari sesi cider-current, yang mengembalikan ID unik yang mewakili sesi saat ini. Akibatnya, panggilan mengembalikan struktur data dengan kesalahan dan tanpa output (mungkin diperlukan penanganan kesalahan). Hasil yang dikembalikan adalah
(dict status (namespace-not-found done error done state state) id 17 session 43e9fd6c-82ed-49fe-9624-0cfc6f56f8b1 changed-namespaces (dict) repl-type cljclj)
Perhatikan namespace-not-found
Entah argumennya harus berupa panggilan ke (cider-current-ns) atau mungkin harus ditinggalkan karena saya tidak melihat bagaimana Anda dapat melewati namespace sebagai bagian dari evaluasi blok.
EDIT: di sini adalah tambalan sederhana yang muncul untuk memperbaiki masalah. Dihasilkan melawan kepala saat ini dari 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
Juga mengirim tambalan ke daftar emacs-orgmode
(cider-current-ns)
? Dan jika demikian, di mana saya dapat menemukan fungsi itu?