ฉันเห็นว่าเขาเป็นปัญหาเดียวกัน ในการขุดเล็กน้อยฉันคิดว่าฉันพบปัญหาแล้ว อย่างไรก็ตามไม่แน่ใจว่าควรรายงานเรื่องนี้กับใคร
ปัญหาอยู่ในฟังก์ชัน 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-: eval INPUT CONNECTION & NS ตัวเลือก)
ส่ง INPUT ไปยังเซิร์ฟเวอร์ nREPL พร้อมกัน การร้องขอถูกส่งผ่านการเชื่อมต่อ หาก NS ไม่ใช่ศูนย์ให้รวมไว้ในคำขอ
หมายเหตุอาร์กิวเมนต์ NS ทางเลือกล่าสุด นี่ควรจะเป็นเนมสเปซของการปิดบัง อย่างไรก็ตามฟังก์ชั่น org-babel-execute: clojure กำลังเรียกใช้ฟังก์ชันนี้พร้อมกับเอาต์พุตจากไซเดอร์ - กระแส - เซสชันซึ่งส่งคืน 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)
หมายเหตุnamespace-not-found
อาร์กิวเมนต์ควรเป็นการเรียกไปยัง (cider-current-ns) หรือบางทีมันควรจะถูกปล่อยทิ้งไว้เพราะฉันไม่เห็นว่าคุณสามารถส่ง namespace เป็นส่วนหนึ่งของการประเมินผลบล็อกได้อย่างไร
แก้ไข: นี่คือแพทช์ง่ายซึ่งดูเหมือนจะแก้ไขปัญหาได้ สร้างกับหัวหน้าปัจจุบันของ 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)
? และถ้าเป็นเช่นนั้นฉันจะหาฟังก์ชั่นนั้นได้จากที่ไหน?