在clojurescript repl中调试函数

时间:2016-02-01 14:52:33

标签: clojurescript

有人知道在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");
}"]

功能越长,这就越烦人。对于许多调试案例,只需函数的名称即可。

2 个答案:

答案 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。