2013-07-24 4 views
14

オンラインでは、JSONテキストを使用して書式設定された、よくインデントされた同じ形式のツールをオンラインで表示できます。JSONのために多くのものがあるようにClojureコードを自動インデントしてフォーマットするためのオンラインツールがありますか?

一部はさらに行くと素敵なツリー状の構造を作る: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)))]))))) 
+1

まだ興味がある場合は、私の編集した回答を見てみたいかもしれません。 –

答えて

20

見てくださいhttps://github.com/xsc/rewrite-clj これはまったく新しいもので、あなたが求めているものと全く同じです。

EDIT私はまだこれについてアップボートを取得しています。私はもっ​​と良い解決策を見つけたと信じています。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)))]))))) 
+0

pprintと同様の影響を全ファイルに加えたい場合は、[この回答](http://stackoverflow.com/a/42582969)のようにzprintを使用してください/ 4982354)。 –

+0

@JasonBasaneseなぜpprintを使用できないのですか? –

+0

leinツールを使うほうがはるかに簡単です.pprintがファイルを入力として受け取ることはできません。 –

6

私はこれを行う任意のオンラインサービスを認識していませんよ、この目的に役立つClojureライブラリがあります。 clojure.pprintにはClojure(キー機能はclojure.pprint/pprint)が付属しています。 Brandon Bloomのfippは、はるかに高速な代替手段です。

これらのどちらも、Emacsのようなプログラマーとしてコードを書式設定することは特にないことに注意してください。しかし、有用であるには十分に近く、文字通りのデータ(コードとして解釈されることは意図していません)は、人間の基準によく一致します。

+0

ありがとうございます。あなたはClojureに関する私の質問すべてにほとんど答えました! –

+0

fippsの主な目的は、コードリファクタリングではなく、パフォーマンスの高い印刷用ですFY12 – BHBH

4

からhttp://pretty-print.netは、EDNやClojureのコードのために、この非常に目的を果たすであろう今そこにあります。

+0

が壊れてしまった:( javascriptコンソールで「Uncaught Invalid match arg:/ ^#/」と表示され、何も表示されない。 – dsvensson

+0

@dsvensson - そのことについて申し訳ありませんが、clojurescriptのバージョンでは、私はこれを独自のサーバに移して、その問題を解決しました。 – comamitc

関連する問題