簡體   English   中英

萊寧根是否將repl-options傳遞給clojure.main / repl

[英]Does Leiningen pass repl-options to clojure.main/repl

常規Clojure repl clojure.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的repl。 萊寧根倉庫中甚至對此有所暗示:

在project.clj中支持:repl-options,這些選項將傳遞給clojure.main / repl。

我無法使它正常工作。 萊寧根似乎不接受與clojure.main/repl相同的選項集。 :prompt有效,盡管功能簽名不同,並且:print:eval似乎被忽略了。

有沒有辦法改變萊寧根的代表的印刷和評估行為?

我的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。

背景:

我一直在嘗試設置lein repl以將pprint用於其輸出。 同樣,NEWS.md暗示了這一點:

在project.clj中支持:project-init,以允許在:repl-options中使用pprint。

幫助,也表示贊賞!

lein repl啟動nREPL,而不是clojure.main/repl 它支持一組不同的選項。 檢查樣本project.clj以獲取受支持參數列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM