สิ่งที่ฉันต้องการ:
ฉันมีโปรแกรม Clojure mccarthy
บนไซต์ระยะไกลขอเรียกว่า สิ่งที่ฉันต้องการจะทำคือการเชื่อมต่อกับแล็ปท็อปของฉันควรใช้nrepl-ritz
nrepl-ritz-jack-in
แจ็คทำงานได้ดีสำหรับโปรแกรมในเครื่อง แต่ดูเหมือนจะไม่เชื่อมต่อกับโปรแกรมระยะไกล
พยายาม 1
C-x C-f บน /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
ผลลัพธ์
ดูเหมือนว่า emac จะแขวน ถ้าฉันไปที่*nrepl-server*
บัฟเฟอร์ฉันเห็นสิ่งนี้:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.flatland.drip.Main.invoke(Main.java:117)
at org.flatland.drip.Main.start(Main.java:88)
at org.flatland.drip.Main.main(Main.java:64)
Caused by: java.lang.AssertionError: Assert failed: project
at leiningen.ritz_nrepl$start_jpda_server.invoke(ritz_nrepl.clj:23)
at leiningen.ritz_nrepl$ritz_nrepl.doInvoke(ritz_nrepl.clj:95)
(และอีกหลายบรรทัดเช่นกัน ... )
ฉันกำลังใช้งานdrip
บนแล็ปท็อปของฉัน แต่ไม่เปิดmccarthy
ดังนั้นจึงnrepl-ritz-jack-in
ไม่พบว่าเป็นไฟล์ระยะไกล ปกติเก่าnrepl-jack-in
จะทำงานตามที่คาดไว้ในกรณีนี้อย่างไรก็ตาม
พยายาม 2
ฉันยังลองเริ่มnrepl-ritz
ใช้lein
บนmccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
จากแล็ปท็อปของฉันฉันส่งต่อพอร์ตเพื่อให้ท้องถิ่น42874
เชื่อมต่อกับ42874
เปิดmccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
จากนั้น Emacs ในพื้นที่ของฉัน:
(require 'nrepl-ritz)
M-x nrepl
พิธีกร: 127.0.0.1
ท่าเรือ: 42874
นี่ทำให้ฉันเชื่อมต่อ:
; nREPL 0.1.7-preview
user>
ดังนั้นเพื่อทดสอบมันฉันวิ่ง
M-x nrepl-ritz-threads
มันให้ตารางหัวข้อที่ดี
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
ผลลัพธ์
แฮงค์นี้ แต่บางครั้งก็แสดงบัฟเฟอร์การดีบักที่ซ่อนอยู่ซึ่งมีการรีสตาร์ทบางตัว ถ้าฉันบอกให้ส่งข้อยกเว้นกลับไปที่โปรแกรมมันจะไม่ให้การควบคุมกลับไปที่ REPL
ฉันได้ทำการค้นหามากมาย แต่ไม่สามารถหาอะไรที่เจาะจงได้มากกว่า "ตรวจสอบให้แน่ใจว่า lein อยู่บนเส้นทางของคุณ" (และฉันก็ทำเช่นนั้นทั้งสองเครื่อง ... )
Attempt 2
ในเครื่องท้องถิ่นของคุณมันใช้ได้ไหม? ที่เริ่มต้นlein ritz-repl
แล้วเชื่อมต่อจาก emacs
(/ 1 0)
- แฮงค์นี้เหรอ? อาจพยายามประเมินอนันต์ ... ;-)