                   indent
                   (conj (mapv buffer-lines-to-width
                               widths
-                              lines)
+                              lines')
                         (repeat [(tkn "\n")]))))))
 
 (defn multi-line-indent2


(defn get-line-length
  [line]
  (def l' line)
  (->> line (map :length) (apply +)))

(defn buffer-lines-to-width
  [width column]
  (def w' width)
  (def c' column)
  (map (fn [line]
         (let [buf-length (->> line (map :length) (apply +) (- width))]
           (if (> buf-length 0)

       (remove #(-> % second nil?))
       (into {})))

(defn apply-type-colors-to-token
  [token]
  (let [type->color {:int :cyan
                     :string :magenta
                     :keyword :yellow
                     :symbol :cyan
                     :truncator :black}
        type->bg-color {:truncator :white}]
    (merge token
           (when-let [color (type->color (:type token))]
             {:fg-color color})
           (when-let [color (type->bg-color (:type token))]
             {:bg-color color}))))

(defn mk-text-props
  [{:keys [start end] :as token}]
  (util/$- -> token
           (dissoc :coll?
                   :column
                   :end
                   :end-col
                   :end-column
                   :end-line
                   :length
                   :line
                   :line-meta?
                   :line-break
                   :start
                   :start-col
                   :start-column
                   :start-line
                   :string
                   :zipper)
           remove-nil-vals
           apply-type-colors-to-token
           [start end $]))

(defn split-text-tag-coll
  [tokens]
