通常のClojurereplclojure.main/repl
は:print
、:prompt
などのオプションを受け入れます:eval
。これにより、replの動作をフックインしてオーバーライドできます。
例えば
(clojure.main/repl
:print #(println "main print!" %)
:prompt #(println "main prompt!")
:eval #(do (println "main eval!") (eval %)))
Leiningen:repl-options
では同じオプションを指定でき、LeiningenはそれらをClojureの担当者に渡すと思いました。Leiningenレポにはこれに関するヒントさえあります:
これを機能させることができません。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 %))
}
)
Leiningen2.7.1を使用しています。
バックグラウンド:
私はその出力lein repl
に使用するように設定しようとしていpprint
ます。繰り返しますが、NEWS.mdはこれを示唆しています:
project.cljで:project-initをサポートして、pprintを:repl-optionsで使用できるようにします。
それもありがたいです!
lein repl
ではなく、nREPLを開始しclojure.main/repl
ます。さまざまなオプションのセットをサポートします。サポートされているパラメータのリストproject.clj
については、サンプルを確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加