rlm@0
|
1 (ns rlm.rlm-commands
|
rlm@0
|
2 (:require [rlm ns-rlm shell-write]
|
rlm@0
|
3 [clojure.contrib [duck-streams :as ds]])
|
rlm@0
|
4 (:use [clojure.contrib java-utils])
|
rlm@2
|
5 (:require clojure.java.javadoc))
|
rlm@0
|
6
|
rlm@0
|
7
|
rlm@0
|
8 (defn current-directory [] (ds/file-str "/home/r/mobius"))
|
rlm@0
|
9
|
rlm@0
|
10 (defn file-re [regex & {:keys [dir recurse] :or
|
rlm@0
|
11 {dir (current-directory) recurse false}}]
|
rlm@0
|
12 (let [dir (ds/file-str dir)]
|
rlm@0
|
13 (filter (fn [file] (re-matches regex (.getName file)))
|
rlm@0
|
14 (if recurse
|
rlm@0
|
15 (file-seq dir)
|
rlm@0
|
16 (seq (.listFiles dir))))))
|
rlm@0
|
17
|
rlm@0
|
18 (defmacro undef
|
rlm@0
|
19 "removes symbol from the current namespace"
|
rlm@0
|
20 [& symbols]
|
rlm@0
|
21
|
rlm@0
|
22 `(dorun (map (partial ns-unmap *ns*) (quote ~symbols))))
|
rlm@0
|
23
|
rlm@0
|
24
|
rlm@0
|
25 (defn ns-reset-fn
|
rlm@0
|
26 "unmaps all interned symbols from the current namespace (except in-ns and ns)"
|
rlm@0
|
27 ([ns-name]
|
rlm@0
|
28 (map (fn [s] (ns-unmap ns-name s))
|
rlm@0
|
29 (keys (ns-interns ns-name)))))
|
rlm@0
|
30
|
rlm@0
|
31 (defmacro ns-reset
|
rlm@0
|
32 "unmaps all symbols from the current namespace (except in-ns and ns)"
|
rlm@0
|
33 ([ns-name] `(ns-clear-fn (quote ~ns-name)))
|
rlm@0
|
34 ([] `(ns-clear-fn (quote ~(symbol (str *ns*))))))
|
rlm@0
|
35
|
rlm@0
|
36 (defmacro ns-nuke-old
|
rlm@0
|
37 ([]
|
rlm@0
|
38 (let [current-ns# (symbol (str *ns*))]
|
rlm@0
|
39 `(do
|
rlm@0
|
40 (println "NUKING namespace" (quote ~current-ns#))
|
rlm@0
|
41 (clojure.lang.Namespace/remove (quote ~current-ns#))
|
rlm@0
|
42 (ns ~current-ns#)))))
|
rlm@0
|
43
|
rlm@0
|
44 (defmacro ns-nuke
|
rlm@0
|
45 "Removes all symbols and all referenced symbols. Use as a last
|
rlm@0
|
46 resort."
|
rlm@0
|
47 ([]
|
rlm@0
|
48 (let [current-ns# (symbol (str *ns*))]
|
rlm@0
|
49 `(ns-nuke ~current-ns#)))
|
rlm@0
|
50 ([ns]
|
rlm@0
|
51 `(do
|
rlm@0
|
52 (println "NUKING namespace" (quote ~ns))
|
rlm@0
|
53 (clojure.lang.Namespace/remove (quote ~ns))
|
rlm@0
|
54 (ns ~ns))))
|
rlm@0
|
55
|
rlm@0
|
56 (defmacro reload []
|
rlm@0
|
57 `(do
|
rlm@0
|
58 (rlm.ns-rlm/ns-clear)
|
rlm@0
|
59 (use :reload-all (quote ~(symbol (str *ns*))))))
|
rlm@0
|
60
|
rlm@0
|
61 (defmacro reload []
|
rlm@0
|
62 `(do
|
rlm@0
|
63 (rlm.rlm-commands/ns-nuke)
|
rlm@0
|
64 (clojure.core/use
|
rlm@0
|
65 :reload-all
|
rlm@0
|
66 (clojure.core/symbol (clojure.core/str clojure.core/*ns*)))))
|
rlm@0
|
67
|
rlm@0
|
68 (defmacro re "faster"
|
rlm@0
|
69 []
|
rlm@0
|
70 `(do
|
rlm@0
|
71 (rlm.rlm-commands/ns-nuke)
|
rlm@0
|
72 (clojure.core/use :reload
|
rlm@0
|
73 (clojure.core/symbol (clojure.core/str clojure.core/*ns*)))))
|
rlm@0
|
74
|
rlm@0
|
75 (defn keymap-clojure []
|
rlm@0
|
76 (rlm.shell-write/sw "xmodmap" "/home/r/.xmodmap.clojure"))
|
rlm@0
|
77
|
rlm@0
|
78 (defn keymap-normal []
|
rlm@0
|
79 (rlm.shell-write/sw "xmodmap" "/home/r/.xmodmap.normal"))
|
rlm@0
|
80
|
rlm@0
|
81
|
rlm@0
|
82 (defn rlm []
|
rlm@0
|
83 (clojure.core/require 'rlm.light-base)
|
rlm@0
|
84 (rlm.ns-rlm/ns-clone rlm.light-base))
|
rlm@0
|
85
|
rlm@2
|
86 (defn javadoc [target]
|
rlm@2
|
87 (binding
|
rlm@2
|
88 [clojure.java.browse/*open-url-script*
|
rlm@2
|
89 "/home/r/proj/repl/get-webpage.pl"]
|
rlm@2
|
90 (clojure.java.javadoc/javadoc target)))
|
rlm@2
|
91
|
rlm@0
|
92
|
rlm@0
|
93 (defn help
|
rlm@0
|
94 "load a bunch of really useful help functions"
|
rlm@0
|
95 []
|
rlm@0
|
96 (use
|
rlm@0
|
97 '[rlm
|
rlm@0
|
98 [function-utils :only [mix defmix runonce]]
|
rlm@2
|
99 [rlm-commands :only [undef ns-reset ns-nuke reload keymap-clojure
|
rlm@2
|
100 keymap-normal rlm javadoc]]
|
rlm@0
|
101 [ns-rlm :only [ns-clear ns-clone ls]]
|
rlm@0
|
102 [play-all :only [play-all-music]]
|
rlm@0
|
103 [shell-inspect :only [command-line?]]
|
rlm@0
|
104 [shell-write :only [sw]]
|
rlm@0
|
105 [classpath-utils :only [classpath add-to-classpath]]
|
rlm@0
|
106 [dreams :only [megadef silence]]
|
rlm@0
|
107 [map-utils :only [map-keys map-vals filter-keys filter-vals]]
|
rlm@0
|
108 [visualize :only [visual]]
|
rlm@0
|
109 [identify :only [identify]]]
|
rlm@0
|
110 '[abomination.no-parens :only [quit]]
|
rlm@0
|
111
|
rlm@0
|
112
|
rlm@0
|
113 '[clojure.contrib
|
rlm@0
|
114 [duck-streams :only [file-str read-lines]]
|
rlm@0
|
115 [str-utils :only [re-split re-gsub str-join]]
|
rlm@0
|
116 [repl-utils :only [show expression-info]]]
|
rlm@0
|
117 '[clojure
|
rlm@2
|
118 [repl :only [source]]])
|
rlm@2
|
119 (clojure.java.javadoc/add-local-javadoc
|
rlm@2
|
120 "/home/r/proj/jMonkeyEngine3/dist/javadoc")
|
rlm@2
|
121 (clojure.java.javadoc/add-local-javadoc
|
rlm@2
|
122 "/home/r/java/jdk6u30-docs/api")
|
rlm@2
|
123 (clojure.java.javadoc/add-local-javadoc
|
rlm@2
|
124 "/home/r/java/jdk6u30-docs/jdk/api")
|
rlm@2
|
125 (clojure.java.javadoc/add-local-javadoc
|
rlm@2
|
126 "/home/r/java/jdk6u30-docs/jre/api")
|
rlm@3
|
127 (clojure.java.javadoc/add-local-javadoc
|
rlm@3
|
128 "/home/r/proj/jmeCapture/docs")
|
rlm@3
|
129
|
rlm@0
|
130 nil)
|
rlm@0
|
131
|
rlm@0
|
132
|
rlm@0
|
133
|