clojure - 是否有一个在线工具可以自动缩进和格式化Clojure代码,就像有很多JSON一样?

标签 clojure clojurescript

在线上有很多工具可以接收JSON文本,并向您展示格式化后的格式以及相同格式的缩进格式。

有些甚至更进一步,形成了一个很好的树状结构:http://jsonviewer.stack.hu/

我们对Clojure代码有类似的东西吗?

或至少可以自动缩进的内容。

如果我的文字是这样的:

(defn prime? [n known](loop [cnt (dec (count known)) acc []](if (< cnt 0) (not (any? acc))
(recur (dec cnt) (concat acc [(zero? (mod n (nth known cnt)))])))))


它应该自动缩进如下内容:

(defn prime? [n known]
  (loop [cnt (dec (count known)) acc []]
    (if (< cnt 0) (not (any? acc))
    (recur (dec cnt) (concat acc [(zero? (mod n (nth known cnt)))])))))

最佳答案

看看https://github.com/xsc/rewrite-clj
它是全新的,并且完全满足您的要求。

编辑我仍然对此表示赞同。我相信我找到了一个更好的解决方案:您可以使用clojure.pprint轻松使用code-dispatch进行此操作,而无需使用外部库。

(clojure.pprint/write '(defn prime? [n known](loop [cnt (dec (count known)) acc []](if (< cnt 0) (not (any? acc))                                                                                                 (recur (dec cnt) (concat acc [(zero? (mod n (nth known cnt)))]))))) 
  :dispatch clojure.pprint/code-dispatch)
=> 
(defn prime? [n known]
  (loop [cnt (dec (count known)) acc []]
    (if (< cnt 0)
      (not (any? acc))
      (recur
        (dec cnt)
        (concat acc [(zero? (mod n (nth known cnt)))])))))

关于clojure - 是否有一个在线工具可以自动缩进和格式化Clojure代码,就像有很多JSON一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829584/

相关文章:

javascript - 使用 Clojurescript 中的 Bootstrap 3

.net - F# 中的宏支持

Clojure - 对象的默认协议(protocol)实现失败?

java - 将 Clojure 的 PersistentArrayMap 强制转换为 Java 的 Map<String, String>

node.js - 将Clojurescript Repl连接到正在运行的 Node 进程的方法

clojure - 使用 core.async 进行测试 - 在测试中刷新 go block ?

clojure - 如何在Clojure的嵌套数组映射中找到键的路径?

Clojure,用集合中的不同值替换字符的每个实例

ClojureScript 将一个命名空间拆分为多个文件

clojure - Re-frame 中的 reg-event-db、reg-event-fx 和 reg-event-ctx 有什么区别?