有人知道在clojureScript REPL中调试函数的好方法吗?
默认行为是打印函数的生成JS代码。
midi.lib=> (defn f [] (println "hello"))
#'midi.lib/f
midi.lib=> f
#object[midi$lib$f "function midi$lib$f(){
return cljs.core.println.call(null,"hello");
}"]
功能越长,这就越烦人。对于许多调试案例,只需函数的名称即可。
答案 0 :(得分:2)
目前不支持控制函数值在ClojureScript中的打印方式。
但是,如果您可以扩展JavaScript函数类型,则可以在REPL中评估以下内容
(extend-type js/Function
IPrintWithWriter
(-pr-writer [obj writer _]
(let [name (.-name obj)
name (if (empty? name)
"Function"
name)]
(write-all writer "#object[" name "]"))))
然后您的示例函数值将打印为#object[midi$lib$f]
。
答案 1 :(得分:0)
尝试使用Figwheel REPL,它不会打印出生成的JS,并且行为类似于Clojure REPL。