मैं क्या चाहता हूँ:
मेरे पास एक दूरस्थ साइट पर क्लोजर प्रोग्राम है, चलो इसे कॉल करें mccarthy
। मैं जो करना चाहता हूं वह nrepl-ritz
अपने लैपटॉप से कनेक्ट करना है , अधिमानतः उपयोग करना nrepl-ritz-jack-in
। जैक एक स्थानीय कार्यक्रम के लिए ठीक काम करता है, लेकिन एक दूरस्थ कार्यक्रम से कनेक्ट नहीं होता है।
प्रयास करना १
C-x C-f पर /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
परिणाम
Emacs हैंग होने लगता है। यदि मैं *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
हालांकि, इस मामले में उम्मीद के मुताबिक नियमित पुराने काम करेंगे।
प्रयास २
मैं भी एक शुरू करने की कोशिश की 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 को नियंत्रण वापस नहीं देता है।
मैंने बहुत सारी खोजें की हैं लेकिन "अपने रास्ते पर लेइन सुनिश्चित करें" की तुलना में अधिक विशिष्ट कुछ भी प्राप्त करने में सक्षम नहीं हैं (और मैंने ऐसा किया, दोनों मशीनों पर ...)।
Attempt 2
अपने स्थानीय मशीन में कोशिश कर रहा है , यह ठीक काम करता है? यह शुरू हो रहा है lein ritz-repl
और फिर emacs से जुड़ रहा है
(/ 1 0)
- यह लटका हुआ है? शायद अनंत का मूल्यांकन करने की कोशिश कर रहा है ... ;-)