    :to   {:ch (dec (:column end)) :line (dec (:line end))}})
 
 
+(defn- maybe-trim [ss]
+  (when ss
+    (s/trim ss)))
+
+(defn- str-contains? [source target]
+  (when (and source target)
+    (< -1 (.indexOf source target))))
+
+(defn- maybe-strip-hint [source]
+  (when source
+    (if (str-contains? source "Hint:")
+      (-> (re-find #"(?m)([\s\S]*?(?=Hint:))" source)
+          first
+          s/trim)
+      source)))
 
 (defn linter-action [ed row]
   (case (:tag row)

            [lt.objs.browser :as browser]
            [lt.objs.eval :as eval]
            [lt.objs.sidebar.clients :as scl]
            [lt.plugins.auto-complete :as auto-complete]
            [lt.util.js :as js-util]
            [clojure.string :as s])
  (:require-macros [lt.macros :refer [behavior]]))

                                                        s/trim
                                                        (str "\n"))]
                                            (editor/replace ed from ann)))}]

    "NAMING ERROR" (let [fixes (->> (re-find #"(?m)Maybe you want one of the following\?(:?[\s\S]*$)" (:details row))
                                    second
                                    (s/split-lines)
