diff --git a/src/babashka/impl/clojure/pprint.clj b/src/babashka/impl/clojure/pprint.clj new file mode 100644 index 00000000..3d2a3695 --- /dev/null +++ b/src/babashka/impl/clojure/pprint.clj @@ -0,0 +1,12 @@ +(ns babashka.impl.clojure.pprint + {:no-doc true} + (:require [fipp.edn :as fipp])) + +(defn pprint + ([edn] + (fipp/pprint edn)) + ([edn writer] + (fipp/pprint edn {:writer writer}))) + +(def pprint-namespace + {'pprint pprint}) diff --git a/src/babashka/main.clj b/src/babashka/main.clj index b0b1a3a2..38f3622b 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -9,6 +9,7 @@ [babashka.impl.clojure.java.io :refer [io-namespace]] [babashka.impl.clojure.java.shell :refer [shell-namespace]] [babashka.impl.clojure.main :refer [demunge]] + [babashka.impl.clojure.pprint :refer [pprint-namespace]] [babashka.impl.clojure.stacktrace :refer [stacktrace-namespace print-stack-trace]] [babashka.impl.common :as common] [babashka.impl.csv :as csv] @@ -21,7 +22,6 @@ [clojure.edn :as edn] [clojure.java.io :as io] [clojure.string :as str] - [fipp.edn :as fipp] [sci.addons :as addons] [sci.core :as sci] [sci.impl.interpreter :refer [eval-string*]] @@ -259,7 +259,7 @@ Everything after that is bound to *command-line-args*.")) 'clojure.repl {'demunge demunge} 'clojure.test t/clojure-test-namespace 'babashka.classpath {'add-classpath add-classpath*} - 'clojure.pprint {'pprint fipp/pprint}}) + 'clojure.pprint pprint-namespace}) (def bindings {'java.lang.System/exit exit ;; override exit, so we have more control diff --git a/test/babashka/main_test.clj b/test/babashka/main_test.clj index e11b0958..0ae37c5e 100644 --- a/test/babashka/main_test.clj +++ b/test/babashka/main_test.clj @@ -342,6 +342,10 @@ (alter-var-root #'clojure.core/inc (constantly inc2)) res)"))))) +(deftest pprint-test + (testing "writer" + (is (string? (bb nil "(let [sw (java.io.StringWriter.)] (clojure.pprint/pprint (range 10) sw) (str sw))"))))) + ;;;; Scratch (comment