10

私のコードは、次のようなこの言語の多くの長い行が混乱しています

(defn check-if-installed[x] (:exit(sh "sh" "-c" (str "command -v " x " >/dev/null 2>&1 || { echo >&2 \"\"; exit 1; }"))))

また

(def Open-Action (action :handler (fn [e] (choose-file :type :open :selection-mode :files-only :dir ListDir :success-fn (fn [fc file](setup-list file)))) :name "Open" :key "menu O" :tip "Open spelling list"))

これはひどいです。私はそれをそのようにフォーマットしたいと思います

(if (= a something)
    (if (= b otherthing)
        (foo)))

ソースコードをより良い方法で美化するにはどうすればよいですか?

4

3 に答える 3

5

The real answer hinges on whether you're willing to insert the newlines yourself. Many systems can indent the lines for you in an idiomatic way, once you've broken it up into lines.

If you don't want to insert them manually, Racket provides a "pretty-print" that does some of what you want:

#lang racket

(require racket/pretty)

(parameterize ([pretty-print-columns 20])
  (pretty-print '(b aosentuh onethunoteh (nte huna) oehnatoe unathoe)))

==>

'(b
  aosentuh
  onethunoteh
  (nte huna)
  oehnatoe
  unathoe)

... but I'd be the first to admit that inserting newlines in the right places is hard, because the choice of line breaks has a lot to do with how you want people to read your code.

于 2012-08-29T15:57:23.153 に答える
3

私は Clojure.pprint をよく使用して、生成されたコードを人間にとってより使いやすいものにしています。テキストの作成を目的としていると思われるレポートに適しています。clojure-mode emacs パッケージに組み込まれているフォーマットは、自分で改行を入れると、非常にきれいにフォーマットされた Clojure を生成します。

于 2012-08-29T08:08:01.957 に答える