annotate src/rlm/rlm_commands.clj @ 6:b8bbb0dbda7b

merging
author Robert McIntyre <rlm@mit.edu>
date Thu, 01 Mar 2012 05:55:59 -0700
parents 12d1367cf1aa 8565803376a4
children b4395ca99822
rev   line source
rlm@0 1 (ns rlm.rlm-commands
rlm@1 2 (:use rlm.ns-rlm)
rlm@0 3 (:use clojure.java.javadoc))
rlm@0 4
rlm@1 5 ;; (defn current-directory [] (ds/file-str "/home/r/mobius"))
rlm@0 6
rlm@1 7 ;; (defn file-re [regex & {:keys [dir recurse] :or
rlm@1 8 ;; {dir (current-directory) recurse false}}]
rlm@1 9 ;; (let [dir (ds/file-str dir)]
rlm@1 10 ;; (filter (fn [file] (re-matches regex (.getName file)))
rlm@1 11 ;; (if recurse
rlm@1 12 ;; (file-seq dir)
rlm@1 13 ;; (seq (.listFiles dir))))))
rlm@0 14
rlm@0 15 (defmacro undef
rlm@0 16 "removes symbol from the current namespace"
rlm@0 17 [& symbols]
rlm@0 18 `(dorun (map (partial ns-unmap *ns*) (quote ~symbols))))
rlm@0 19
rlm@0 20 (defn ns-reset-fn
rlm@0 21 "unmaps all interned symbols from the current namespace (except in-ns and ns)"
rlm@0 22 ([ns-name]
rlm@0 23 (map (fn [s] (ns-unmap ns-name s))
rlm@0 24 (keys (ns-interns ns-name)))))
rlm@0 25
rlm@0 26 (defmacro ns-reset
rlm@0 27 "unmaps all symbols from the current namespace (except in-ns and ns)"
rlm@0 28 ([ns-name] `(ns-clear-fn (quote ~ns-name)))
rlm@0 29 ([] `(ns-clear-fn (quote ~(symbol (str *ns*))))))
rlm@0 30
rlm@0 31 (defmacro ns-nuke-old
rlm@0 32 ([]
rlm@0 33 (let [current-ns# (symbol (str *ns*))]
rlm@0 34 `(do
rlm@0 35 (println "NUKING namespace" (quote ~current-ns#))
rlm@0 36 (clojure.lang.Namespace/remove (quote ~current-ns#))
rlm@0 37 (ns ~current-ns#)))))
rlm@0 38
rlm@0 39 (defmacro ns-nuke
rlm@0 40 "Removes all symbols and all referenced symbols. Use as a last
rlm@0 41 resort."
rlm@0 42 ([]
rlm@0 43 (let [current-ns# (symbol (str *ns*))]
rlm@0 44 `(ns-nuke ~current-ns#)))
rlm@0 45 ([ns]
rlm@0 46 `(do
rlm@0 47 (println "NUKING namespace" (quote ~ns))
rlm@0 48 (clojure.lang.Namespace/remove (quote ~ns))
rlm@0 49 (ns ~ns))))
rlm@0 50
rlm@0 51 (defmacro reload []
rlm@0 52 `(do
rlm@0 53 (rlm.rlm-commands/ns-nuke)
rlm@0 54 (clojure.core/use
rlm@0 55 :reload-all
rlm@0 56 (clojure.core/symbol (clojure.core/str clojure.core/*ns*)))))
rlm@0 57
rlm@0 58 (defmacro re "faster"
rlm@0 59 []
rlm@0 60 `(do
rlm@0 61 (rlm.rlm-commands/ns-nuke)
rlm@0 62 (clojure.core/use :reload
rlm@0 63 (clojure.core/symbol (clojure.core/str clojure.core/*ns*)))))
rlm@0 64
rlm@1 65 ;; (defn keymap-clojure []
rlm@1 66 ;; (rlm.shell-write/sw "xmodmap" "/home/r/.xmodmap.clojure"))
rlm@0 67
rlm@1 68 ;; (defn keymap-normal []
rlm@1 69 ;; (rlm.shell-write/sw "xmodmap" "/home/r/.xmodmap.normal"))
rlm@0 70
rlm@2 71 (defn javadoc [target]
rlm@2 72 (binding
rlm@2 73 [clojure.java.browse/*open-url-script*
rlm@2 74 "/home/r/proj/repl/get-webpage.pl"]
rlm@2 75 (clojure.java.javadoc/javadoc target)))
rlm@2 76
rlm@0 77 (defn help
rlm@0 78 "load a bunch of really useful help functions"
rlm@0 79 []
rlm@0 80 (use
rlm@0 81 '[rlm
rlm@4 82 [function-utils :only [race race-pred defmix]]
rlm@1 83 [rlm-commands :only
rlm@1 84 [undef ns-reset ns-nuke reload re]]
rlm@1 85 [ns-rlm :only [ls]]
rlm@1 86 ;;[play-all :only [play-all-music]]
rlm@0 87 [shell-inspect :only [command-line?]]
rlm@1 88 ;;[shell-write :only [sw]]
rlm@1 89 ;;[classpath-utils :only [classpath add-to-classpath]]
rlm@0 90 [dreams :only [megadef silence]]
rlm@4 91 [map-utils :only [map-keys filter-keys filter-vals]]
rlm@0 92 [visualize :only [visual]]
rlm@0 93 [identify :only [identify]]]
rlm@1 94
rlm@1 95 ;;'[abomination.no-parens :only [quit]]
rlm@0 96
rlm@1 97 ;; TODO find replacement for show
rlm@0 98 '[clojure
rlm@2 99 [repl :only [source]]])
rlm@2 100 (clojure.java.javadoc/add-local-javadoc
rlm@2 101 "/home/r/proj/jMonkeyEngine3/dist/javadoc")
rlm@2 102 (clojure.java.javadoc/add-local-javadoc
rlm@2 103 "/home/r/java/jdk6u30-docs/api")
rlm@2 104 (clojure.java.javadoc/add-local-javadoc
rlm@2 105 "/home/r/java/jdk6u30-docs/jdk/api")
rlm@2 106 (clojure.java.javadoc/add-local-javadoc
rlm@2 107 "/home/r/java/jdk6u30-docs/jre/api")
rlm@3 108 (clojure.java.javadoc/add-local-javadoc
rlm@3 109 "/home/r/proj/jmeCapture/docs")
rlm@4 110 (clojure.java.javadoc/add-local-javadoc
rlm@4 111 "/home/r/java/tritonus.sourceforge.net/apidoc")
rlm@0 112 nil)
rlm@0 113
rlm@0 114
rlm@0 115