             [seesaw.bind :as b]
             [clojure.java.browse]
             [clojure.java.shell]
+            [clojure.string :as str]
+            [clj-info.doc2map :as d2m]
             [clj-ns-browser.inspector]
             [seesaw.meta]
             [clojure.java.javadoc]

                       (or (re-find r (:doc %))
                           (re-find r (str (:name %))))))
         (map #(str (:ns %) "/" (:name %))))))


(defn widget-model-count

              v (selection (id :vars-cbx))
              f (get vars-cbx-value-fn-map v)]
          (if n
            (let [already-filtered (= v "search-all-docs")
                  string-seq (if already-filtered
                               (find-in-doc-strings (config (id :vars-filter-tf)
                                                            :text))
                               (map str (keys (f n))))]
              {:already-filtered already-filtered :string-seq string-seq})
            {:already-filtered false :string-seq []}))))
      (b/transform regx-tf-filter (id :vars-filter-tf))
      (b/transform (fn [symbol-str-seq]
        (if @group-vars-by-object-type
          (let [n-s (selection (id :ns-lb))
                n (and n-s (find-ns (symbol n-s)))
                v (selection (id :vars-cbx))
                fqns? (#{"all-publics" "search-all-docs"} v)]
            (group-by-object-type symbol-str-seq fqns? n-s))
          symbol-str-seq)))
      (b/notify-soon)
      (b/property (id :vars-lb) :model))
    ;;
