Upgrade to SCI 0.3.0
This commit is contained in:
parent
96d2e44188
commit
89a5fd5428
3
deps.edn
3
deps.edn
|
@ -2,8 +2,7 @@
|
||||||
|
|
||||||
:deps
|
:deps
|
||||||
{org.clojure/clojure {:mvn/version "1.10.3"}
|
{org.clojure/clojure {:mvn/version "1.10.3"}
|
||||||
babashka/sci {:git/url "https://github.com/babashka/sci"
|
org.babashka/sci {:mvn/version "0.3.0"}
|
||||||
:sha "315e5ee6d6ce0b7f6ccac641ed79adde65dea666"}
|
|
||||||
reagent/reagent {:mvn/version "1.0.0"}
|
reagent/reagent {:mvn/version "1.0.0"}
|
||||||
cljsjs/react {:mvn/version "17.0.2-0"}
|
cljsjs/react {:mvn/version "17.0.2-0"}
|
||||||
cljsjs/react-dom {:mvn/version "17.0.2-0"}
|
cljsjs/react-dom {:mvn/version "17.0.2-0"}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
(ns scittle.impl.error
|
(ns scittle.impl.error
|
||||||
(:refer-clojure :exclude [println])
|
(:refer-clojure :exclude [println])
|
||||||
(:require [clojure.string :as str]
|
(:require [clojure.string :as str]
|
||||||
[sci.impl.callstack :as cs]))
|
[sci.core :as sci]))
|
||||||
|
|
||||||
(defn println [& strs]
|
(defn println [& strs]
|
||||||
(.error js/console (str/join " " strs)))
|
(.error js/console (str/join " " strs)))
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
(defn print-stacktrace
|
(defn print-stacktrace
|
||||||
[stacktrace {:keys [:verbose?]}]
|
[stacktrace {:keys [:verbose?]}]
|
||||||
(let [stacktrace (cs/format-stacktrace stacktrace)
|
(let [stacktrace (sci/format-stacktrace stacktrace)
|
||||||
segments (split-stacktrace stacktrace verbose?)
|
segments (split-stacktrace stacktrace verbose?)
|
||||||
[fst snd] segments]
|
[fst snd] segments]
|
||||||
(run! #(print % "\n") fst)
|
(run! #(print % "\n") fst)
|
||||||
|
@ -58,24 +58,10 @@
|
||||||
(let [n (- n (count s))]
|
(let [n (- n (count s))]
|
||||||
(str s (str/join (repeat n " ")))))
|
(str s (str/join (repeat n " ")))))
|
||||||
|
|
||||||
(defn print-locals [locals]
|
|
||||||
(let [max-name-length (reduce max 0 (map (comp count str)
|
|
||||||
(keys locals)))
|
|
||||||
max-name-length (+ max-name-length 2)]
|
|
||||||
(println
|
|
||||||
(with-out-str (binding [*print-length* 10
|
|
||||||
*print-level* 2]
|
|
||||||
(doseq [[k v] locals]
|
|
||||||
(print (str (right-pad (str k ": ") max-name-length)))
|
|
||||||
;; print nil as nil
|
|
||||||
(prn v)))))))
|
|
||||||
|
|
||||||
(defn error-handler [e src-map]
|
(defn error-handler [e src-map]
|
||||||
(let [d (ex-data e)
|
(let [d (ex-data e)
|
||||||
sci-error? (isa? (:type d) :sci/error)
|
sci-error? (isa? (:type d) :sci/error)
|
||||||
stacktrace (some->
|
stacktrace (sci/stacktrace e)]
|
||||||
d :sci.impl/callstack
|
|
||||||
cs/stacktrace)]
|
|
||||||
(ruler "Scittle error")
|
(ruler "Scittle error")
|
||||||
(when-let [name (.-name e)]
|
(when-let [name (.-name e)]
|
||||||
(when-not (= "Error" name)
|
(when-not (= "Error" name)
|
||||||
|
@ -90,15 +76,12 @@
|
||||||
(println (str "Location: "
|
(println (str "Location: "
|
||||||
(when file (str file ":"))
|
(when file (str file ":"))
|
||||||
line ":" column""))))
|
line ":" column""))))
|
||||||
(when-let [phase (cs/phase e stacktrace)]
|
(when-let [phase (:phase d)]
|
||||||
(println "Phase: " phase))
|
(println "Phase: " phase))
|
||||||
(when-let [ec (when sci-error?
|
(when-let [ec (when sci-error?
|
||||||
(error-context e src-map))]
|
(error-context e src-map))]
|
||||||
(ruler "Context")
|
(ruler "Context")
|
||||||
(println ec))
|
(println ec))
|
||||||
(when-let [locals (not-empty (:locals d))]
|
|
||||||
(ruler "Locals")
|
|
||||||
(print-locals locals))
|
|
||||||
(when sci-error?
|
(when sci-error?
|
||||||
(when-let
|
(when-let
|
||||||
[st (let [st (with-out-str
|
[st (let [st (with-out-str
|
||||||
|
|
Loading…
Reference in a new issue