Những gì tôi muốn:
Tôi có một chương trình clojure trên một trang web từ xa, hãy gọi nó mccarthy
. Những gì tôi muốn làm là kết nối với một nrepl-ritz
từ máy tính xách tay của tôi, tốt nhất là sử dụng nrepl-ritz-jack-in
. Giắc cắm hoạt động tốt cho một chương trình cục bộ, nhưng dường như không kết nối với một chương trình từ xa.
Cố gắng 1
C-x C-f trên /mccarthy:code/program/project.clj
(require 'nrepl-ritz)
M-x nrepl-ritz-jack-in
Kết quả
Emacs xuất hiện để treo. Nếu tôi đi đến *nrepl-server*
bộ đệm, tôi thấy điều này:
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)
(và hàng tấn các dòng khác, quá ...)
Tôi đang sử dụng drip
trên máy tính xách tay của mình, nhưng không bật mccarthy
, vì vậy rõ ràng nrepl-ritz-jack-in
là không phát hiện ra rằng đó là một tệp từ xa. Thường xuyên cũ nrepl-jack-in
sẽ làm việc như mong đợi trong trường hợp này, tuy nhiên.
Cố gắng 2
Tôi cũng đã thử bắt đầu nrepl-ritz
sử dụng lein
trên mccarthy
:
mattox@mccarthy$ lein ritz-nrepl
nREPL server started on port 42874
Từ máy tính xách tay của tôi, tôi chuyển tiếp một cổng để địa phương 42874
kết nối với 42874
trên mccarthy
:
ssh -L 42874:localhost:42874 -N mccarthy
Sau đó, từ Emacs địa phương của tôi:
(require 'nrepl-ritz)
M-x nrepl
Tổ chức: 127.0.0.1
Hải cảng: 42874
Điều này cho tôi một kết nối:
; nREPL 0.1.7-preview
user>
Vì vậy, để kiểm tra nó, tôi chạy
M-x nrepl-ritz-threads
Nó cho tôi một bảng chủ đề tốt đẹp.
M-x nrepl-ritz-break-on-exception
user> (/ 1 0)
Kết quả
Điều này bị treo, nhưng đôi khi hiển thị một bộ đệm gỡ lỗi ẩn với một số khởi động lại có sẵn. Nếu tôi bảo nó chuyển ngoại lệ trở lại chương trình, nó sẽ không bao giờ trả lại quyền kiểm soát cho REPL.
Tôi đã thực hiện rất nhiều tìm kiếm nhưng không thể có được bất cứ điều gì cụ thể hơn là "đảm bảo rằng lein đang trên đường của bạn" (Và tôi đã làm điều đó, trên cả hai máy ...).
Attempt 2
trong máy cục bộ của bạn, nó hoạt động tốt chứ? Đó là bắt đầu lein ritz-repl
và sau đó kết nối từ emacs
(/ 1 0)
- cái này treo? Có lẽ đang cố gắng đánh giá vô cùng ... ;-)