diff --git a/src/cider/nrepl/middleware/out.clj b/src/cider/nrepl/middleware/out.clj index 89d007731..ef3010934 100644 --- a/src/cider/nrepl/middleware/out.clj +++ b/src/cider/nrepl/middleware/out.clj @@ -9,10 +9,25 @@ guarantee that the channel that sent the clone message will properly handle output replies." (:require [cider.nrepl.middleware.util.cljs :as cljs] + [clojure.string :as s] [clojure.tools.nrepl.middleware :refer [set-descriptor!]] [clojure.tools.nrepl.middleware.interruptible-eval :as ie] [clojure.tools.nrepl.middleware.session :as session]) - (:import [java.io PrintWriter Writer])) + (:import clojure.lang.AFunction + [java.io PrintWriter Writer])) + +;;; Prettier version of function objects +(defmethod print-method AFunction [c ^Writer w] + (.write w "#function ") + (.write w (-> (pr-str (class c)) + (s/replace-first "$" "/") + (s/replace "_QMARK_" "?") + (s/replace "_PLUS_" "+") + (s/replace "_BANG_" "!") + (s/replace "_EQ_" "=") + (s/replace "_SLASH_" "/") + (s/replace "_STAR_" "*") + (s/replace "_" "-")))) ;;; OutStream (defonce original-out *out*)