2016-02-01 3 views
1

Кто-нибудь знает хороший способ отладки функций в clojureScript REPL?функции отладки в replo clojurescript

По умолчанию установлено, что сгенерированный код функции 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

Попробуйте использовать Figwheel REPL, он не распечатывает сгенерированную JS и ведет себя аналогично Clojure REPL.

+0

о, я использую figwheel REPL. но он ведет себя так, как описано. в твоем нет? –

2

В настоящее время нет поддержки для управления тем, как значения функций печатаются на ClojureScript.

Но, если вы все в порядке с продлением типа функции JavaScript, вы можете оценить следующее в РЕПЛ

(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].

+0

выглядит хорошо, я попробую его позже. Будет ли способ сохранить это из моего кода? или: каким-то образом его использовать только в коде разработки, а не в производстве. –

Смежные вопросы