2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请参阅 关于 页面以了解更多有关此应用的信息。

+5
tools.deps
Socket REPL,尤其是在预 repl 的出现之后,似乎已成为 Clojure Repl 推荐且最可靠的途径。

然而,目前启动 Socket REPL 的唯一方法是通过给 [-J] 选项一个非常长的参数。例如,以下是如何启动 node CLJS repl 的方式。


clojure -J-Dclojure.server.repl="{:port 5555 :accept cljs.server.node/repl :args [{:opts $(cat cljsc_opts.edn)}]}"


此方法有几个问题,主要是关于 [-D] 和 [:args] 向量的括号。更不用说用户可能不知道这个特定的 JVM 属性接受 edn。

所有这些细节似乎都是实现细节,启动器应该隐藏这些细节,目标是为用户在他们的编辑器中启动超级简单的 socket REPL。

反驳的观点可能是编辑器可以构建命令行,但这当然是脆弱的:理想情况下,编辑器只知道地址和端口号,然后它可以直接从 REPL 查询信息(例如,在 unrepl 中的某种功能广告)。

提议是将一些 socket repl 选项提升到“一等公民”并作为“变量”。无论如何,避免整个 JVM 属性问题。一等公民可以是别名。

哪些选项是一等尚不清楚,因此工具维护者/创建者需要考虑一下,但有一个票据在那里进行讨论。

1 答案

0
参考:https://clojure.atlassian.net/browse/TDEPS-48(由 arichiardi 报告)
...