diff --git a/CHANGELOG.md b/CHANGELOG.md index 15986d35..d1b289d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ For a list of breaking changes, check [here](#breaking-changes). ## Unreleased +### New + +- Add `pp` from `clojure.pprint` #707 + ### Fixed / enhancd - Fix issue with unzipping nested directory [babashka/pod-registry#4](https://github.com/babashka/pod-registry/issues/4) diff --git a/src/babashka/impl/clojure/main.clj b/src/babashka/impl/clojure/main.clj index db26af93..1e8ac7a4 100644 --- a/src/babashka/impl/clojure/main.clj +++ b/src/babashka/impl/clojure/main.clj @@ -50,8 +50,8 @@ (def ^{:doc "A sequence of lib specs that are applied to `require` by default when a new command-line REPL is started."} repl-requires - '[[clojure.repl :refer (dir doc)] - [clojure.pprint :refer (pprint)]]) + '[[clojure.repl :refer (source apropos pst dir doc find-doc)] + [clojure.pprint :refer (pp pprint)]]) (defn repl "Generic, reusable, read-eval-print loop. By default, reads from *in*, diff --git a/src/babashka/impl/pprint.clj b/src/babashka/impl/pprint.clj index b81c5ffe..943f323c 100644 --- a/src/babashka/impl/pprint.clj +++ b/src/babashka/impl/pprint.clj @@ -2,7 +2,6 @@ {:no-doc true} (:require [clojure.pprint :as pprint] [sci.core :as sci] - [sci.impl.namespaces :refer [copy-var]] [sci.impl.vars :as vars])) (alter-var-root #'pprint/write-option-table @@ -71,11 +70,12 @@ (pprint/pprint s writer)))) (def pprint-namespace - {'pprint (copy-var pprint pprint-ns) - 'print-table (copy-var print-table pprint-ns) + {'pp (sci/copy-var pprint/pp pprint-ns) + 'pprint (sci/copy-var pprint pprint-ns) + 'print-table (sci/copy-var print-table pprint-ns) '*print-right-margin* print-right-margin - 'cl-format (copy-var pprint/cl-format pprint-ns) + 'cl-format (sci/copy-var pprint/cl-format pprint-ns) ;; we alter-var-root-ed write above, so this should copy the right function - 'write (copy-var pprint/write pprint-ns) - 'simple-dispatch (copy-var pprint/simple-dispatch pprint-ns) + 'write (sci/copy-var pprint/write pprint-ns) + 'simple-dispatch (sci/copy-var pprint/simple-dispatch pprint-ns) }) diff --git a/src/babashka/impl/repl.clj b/src/babashka/impl/repl.clj index bed67e68..73b2267f 100644 --- a/src/babashka/impl/repl.clj +++ b/src/babashka/impl/repl.clj @@ -53,7 +53,7 @@ (sio/println "Use :repl/quit or :repl/exit to quit the REPL.") (sio/println "Clojure rocks, Bash reaches.") (sio/println)) - (eval-form sci-ctx '(use 'clojure.repl)))) + (eval-form sci-ctx `(apply require (quote ~m/repl-requires))))) :read (or read (fn [_request-prompt request-exit] (let [v (parser/parse-next sci-ctx in)] diff --git a/test/babashka/impl/repl_test.clj b/test/babashka/impl/repl_test.clj index 18f1fc6d..d9cf7b70 100644 --- a/test/babashka/impl/repl_test.clj +++ b/test/babashka/impl/repl_test.clj @@ -1,5 +1,6 @@ (ns babashka.impl.repl-test (:require + [babashka.impl.pprint :refer [pprint-namespace]] [babashka.impl.repl :refer [start-repl!]] [clojure.string :as str] [clojure.test :as t :refer [deftest is]] @@ -15,7 +16,8 @@ (defn repl! [] (start-repl! (init {:bindings {'*command-line-args* - ["a" "b" "c"]}}))) + ["a" "b" "c"]} + :namespaces {'clojure.pprint pprint-namespace}}))) (defn assert-repl [expr expected] (is (str/includes? (sci/with-out-str