Clojure China

关于 Lumo 的 REPL 了解到的

#1

感觉一堆的概念搞不清楚, 就在 Slack 强行问了一下, 有人答复我了 666

原来照着网上的文档, 我还以为是 nrepl 相关的栈, 因为有刷到个 nrepl 的文章,
问了一圈才知道 Lumo 就没实现 nrepl, 只是基本的 tcp 服务接收字符串加换行而已.

前几天看到 @isaac 的代码, 才发现可以这么写, 代码是用 talnet 连接的服务端,
https://github.com/gfZeng/cljs-boot/blob/master/src/npm/boot.cljs#L95-L112
发送过去的就是加上和 \newline 的代码, 然后会执行,
之前也看到过有人给了一个类似的版本:

Slack 上给了我一个最简单的 demo, 用 netcat 直接启动客户端:

lumo --socket-repl 9999 -r
# other terminal
echo '(prn "hi")' | nc localhost 9999

手工测试了一下, 原先以为从客户端发出的命令不能操作服务端的环境,
实际看下来还是可以的, 这倒有意思…
知道了原理之后, 就可以直接用 net 模块直接从 Node.js 环境跑客户端了:
https://nodejs.org/api/net.html#net_net_createconnection_options_connectlistener

另外那个没用上的 nrepl 倒是搜到一些文档… 在 Lumo 跟 Planck 估计是用不到了
https://lambdaisland.com/guides/clojure-repls/clojure-repls

#2

lumo 结合 emacs 开发, 简直太爽了

#3

自制编辑器的飘过

1赞