请分享你的想法,参加 2024 年 Clojure 状态调查!

欢迎!请参阅关于页面了解本站的相关信息。

+7
REPL

我已经长期使用nrepl,但是它与使用clojure.main/repl来创建“子REPL”并不协调。现在我在使用套接字REPL,并真的很享受子REPL对我又变得可用。我主要只是进行一个简单的调用

(clojure.main/repl
 :prompt (fn [] (printf "%s=> " (peek (str/split (str *ns*) #"\."))))
 :read server/repl-read)

人们还用子REPL做了什么?创建评估的历史文件?将形式投入数据库中?我非常想知道。

5 答案

+1

这是一段将 clojure.main/repl 连接到 http 的部分不完整的代码(类似于 nrepl 的 drawbridge)。

wrap-repl 是一个 ring 处理器。http-repl 随后在正常的 clojure.main/repl 中调用,并将其连接到远程REPL。

我认为代码的通信部分都已到位,缺少的部分是在通过签名请求来安全访问REPL。

链接到 Gist

+1
0

我使用NightCode的一个分支,名为nightclub,来提供嵌入式的REPL、mini IDE、文件编辑器和项目管理工具,用于我部署的应用程序。用户基本上可以获得Clojure环境、应用程序的实时脚本,以及一个将命令回显到REPL的GUI,这可以在某种程度上提供交互式学习体验(类似于Excel中的VBA编辑器)。在只有Uberjar可以获得的环境中,我从这个设置中获得了良好的Clojure开发环境/脚本/调试设置,除了应用程序外。

0

我使用它来将fipp作为默认打印机,这比Clojure的默认print/pprint快得多

(clojure.main/repl
  :caught (fn [e] (fipp.repl/pst e))
  :print  (fn [x] (fipp.edn/pprint x)))
0

似乎它不是基于clojure.main/repl专门实现的,但Datawalk是一个很好的使用子REPL的例子。

...