Amo*_*kar 17 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)))])))))
Run Code Online (Sandbox Code Playgroud)
它应该自动缩进到这样的东西:
(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)))])))))
Run Code Online (Sandbox Code Playgroud)
Leo*_*hin 22
看看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)))])))))
Run Code Online (Sandbox Code Playgroud)