2016-10-31 5 views
1

通常のClojure repl clojure.main/replには、replの動作をフックインして無効にする:print:prompt:evalなどのオプションがあります。Leiningenはclojure.main/replにrepl-optionsを渡します

など。

(clojure.main/repl 
    :print #(println "main print!" %) 
    :prompt #(println "main prompt!") 
    :eval #(do (println "main eval!") (eval %))) 

私はLeiningenをの:repl-optionsは、あなたが同じオプションを指定してみましょう、とLeiningenをはClojureののREPLへのそれらを通過することを想定。これにヒントはLeiningenをレポでさえあります:

Support :repl-options in project.clj that get passed to clojure.main/repl.

私はこの仕事を得ることができません。 Leiningenはclojure.main/replと同じオプションを受け入れていないようです。 :promptが機能しますが、関数の署名は異なりますが、:print:evalは無視されているようです。

Leiningenのreplで印刷と評価の動作を変更する方法はありますか?

マイproject.clj

(defproject repl-test "0.1.0-SNAPSHOT" 
    :dependencies [[org.clojure/clojure "1.7.0"]] 
    :repl-options { 
    :print #(println "lein print!" %) 
    :prompt (constantly "lein prompt!") 
    :eval #(do (println "lein eval!") (eval %)) 
    } 
) 

私はLeiningenを2.7.1を使用しています。

背景:

私はその出力にpprintを使用するようにlein replを設定しようとしてきました。ここでも、NEWS.mdはこれをヒント:それも感謝して

Support :project-init in project.clj to allow pprint to be used in :repl-options.

ヘルプ!

答えて

1

lein replは、clojure.main/replではなく、nREPLを開始します。これは、異なるオプションのセットをサポートしています。サンプルproject.cljlist of supported parametersにチェックしてください。

+0

ありがとう、それはそれを説明するでしょう。過去のある時点でclojure.main/replを使用するように見えます。 – Alex

関連する問題