问题标签 [nrepl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1216 浏览

emacs - 关闭nrepl的正确方法是什么?

您如何在 emacs 中优雅地关闭 nrepl?

swank-clojure 以逗号关闭,然后sayoonara,这不适用于 nrepl。

0 投票
1 回答
1995 浏览

clojure - 在 Clojure Server 中嵌入 NREPL 的最佳实践方法

我刚刚开始在 Clojure 中开发服务。我对如何处理服务器关闭有点迷茫。

我正在使用 Clojure 1.5.1。对于日志记录,我使用的是 Timbre 1.5.3。我想将 NREPL 嵌入到我的服务器中以进行热代码部署。

这是我的 core.clj 文件。核心是我的主要,我正在使用“lein new app”生成的应用程序外壳。

当我“lein run”时,nrepl-server 按预期启动,信息消息将发送到终端。然后我从 Emacs 连接“nrepl”。没问题。从 Emacs 我执行“(extenium.core/stop)”。那时,我在 Emacs 上收到“Stopping nrepl server”消息(意味着 stdout 被重定向到客户端)。连接关闭(如预期的那样),我从未看到“已停止的 nrepl 服务器”消息。美好的。

我查看终端,但没有看到“Stopping...”或“Stopped...”消息。相反,我得到以下异常:

理想情况下,我想要以下内容:

  1. 能够从 NREPL 客户端启动关闭。优雅地关闭所有 NREPL 客户端连接,无一例外。将日志消息定向到终端(或最终,循环日志文件)关闭。
  2. 在 NREPL 连接期间,将日志记录输出克隆到服务器(终端或日志)和 NREPL 输出。
  3. 捕获有关传入 NREPL 连接的信息,为其命名,并记录连接和断开连接活动。
  4. 最终,验证传入的 NREPL 连接。
  5. 甚至稍后,授权他们执行他们的操作。
0 投票
1 回答
854 浏览

emacs - Clojure Emacs 连接到远程 REPL

当使用普通 repl 时,tramp我可以导航到远程目录并执行 inferior-lisp,它会在远程启动一个inferior-lisp进程。使用 nrepl,我可以在远程机器上启动 repl,而lein repl不是使用连接到它,nrepl-jack-in但问题在于 nrepl 我必须设置防火墙规则或使用 ssh 和转发端口,以便我可以插上。使用劣质lisp和tramp方法我做不需要做任何特别的事情M-x inferior-lisp,我就准备好了。有没有办法使用 nrepl 和 tramp 实现类似的行为?

0 投票
1 回答
267 浏览

clojure - 有没有办法减少 nrepl (ritz-repl) 的启动时间?

我以前没有使用过 ritz-nrepl,nrepl 花了大约 10 秒,虽然很长,但仍然可以忍受,因为我不经常重新启动它。

当我试用 ritz-repl 时,启动需要将近 30 秒,并且消耗大约 1.3G 内存。这让我不愿意使用它。

我什至扔了一个 SSD 希望它可以提高速度,因为我听到有人提到他使用 ubuntu + ssd “几乎没有注意到 lein repl 启动时间”。但是我自己无法分辨ssd和hdd之间的区别。我不知道是我做错了什么还是只是一个神话。

0 投票
0 回答
337 浏览

debugging - clojure/ritz/nrepl:如何获取 :thread-id 以便通过 nrepl 向 ritz 发送“帧源”操作?

我正在一个线程中启动 ritz 服务器,并使用 nrepl 客户端以编程方式与其通信:

(其中一些基于http://hugoduncan.github.io/ritz-conj/#/5/2

这很好用,我收到了来自 ritz-nrepl 服务器的响应。但是如果我想用框架做一些事情:

这会引发异常,因为“帧源”操作需要 :thread-id。但是我怎么知道线程ID?我检查了 break-context 并且我看到映射中有表示线程 id 的键应该由我传入的 :thread-id 查找,但是我应该如何知道 :thread-id预先?

感谢您的任何指导!

0 投票
1 回答
848 浏览

eclipse - 逆时针 HTTP REPL

在 Eclipse+逆时针中,当我想连接到 REPL 时,对话框告诉我可以通过 HTTP 使用 nREPL:

连接到 REPL 对话框

如何设置?这是否以某种方式连接到吊桥lein repl :connect http://my.url/repl尽管为我工作,但我无法使这些工作一起工作。

为清楚起见,为什么这与经典 REPL 相比有用:经典 REPL 仅适用于 localhost。您可以通过 SSH 端口隧道桥接它,但这 - REPL over HTTP - 是远程“实时”服务器的可行替代方案。


为了完整起见,服务器端:

0 投票
1 回答
90 浏览

clojure - How to manipulate multiple buffers using nrepl?

I am trying to twist some code from slime to nrepl. The code is obvious when working with slime. It sends clojure code to evaluate, get the result string and process it as you like. I changed my code so that it can interact with nrepl. That is: creating my own value handler which process the result string and passing it to nrepl-make-response-handler. It works fine until now. But then I found some code which manipulate multiple buffers at once. Since nrepl-make-response-handler accepts only one buffer argument, I was wondering if I could ignore it and invoke my code which process multiple buffers in the value handler. I trid but faild, nothing changed. Any elisp experts there? I really need a help.

My own handler:

The client code:

The code which process the result:

0 投票
1 回答
502 浏览

clojure - 使用 nREPL 的 Clojure 和 Lein 命名空间问题

我有很多“乐趣”,试图理解为什么以下内容不起作用。src在我的项目目录中启动 nREPL 会话后lein,我执行了以下操作:

阅读 Lein 教程,我的基本理解是我应该像这样放置我的源代码:

下面动物的内容如下所示:

Dog为什么在评估没有错误时尝试评估会Animal导致运行时异常?如何正确地做到这一点?

0 投票
1 回答
469 浏览

java - 如何在 Clojure 中正确导入用户定义的类

我正在使用 Leiningen 和 Clojure,在我的一生中,我无法理解为什么 Clojure 使得正确导入命名空间变得如此困难。这是以下错误

这是我的core.clj文件中的内容:

然后,在 REPL 中,我输入以下内容(在lein项目的 src/ 目录中):

好吧……什么?为什么?

作为参考,这是我的文件animal.clj也在animals目录中:

0 投票
2 回答
282 浏览

clojure - 从远程 nrepl 传输值

我有一个通过 Screen 启动的远程 nrepl,我使用 lein repl :connect 连接到它。我可以将价值转移到本地 repl 吗?我问的原因是:

  1. 使用 Screen 意味着当我想做图形操作时会出现无头异常
  2. 有时我想获得一个远程值的本地副本来玩。