|
15 | 15 | maintained anymore."
|
16 | 16 | {:author "Edwin Watkeys"}
|
17 | 17 | (:require
|
18 |
| - [nrepl.misc :refer [response-for]] |
19 |
| - [nrepl.transport :as t] |
| 18 | + [cider.nrepl.middleware.util :refer [respond-to]] |
20 | 19 | [profile.core :as p]))
|
21 | 20 |
|
22 |
| -(defn send-exception |
23 |
| - [_e msg transport] |
24 |
| - (t/send transport (response-for msg :status :done :value "exception"))) |
| 21 | +(defn- send-exception |
| 22 | + [_e msg] |
| 23 | + (respond-to msg :status :done :value "exception")) |
25 | 24 |
|
26 | 25 | (defn toggle-profile
|
27 | 26 | [{:keys [ns sym transport] :as msg}]
|
28 | 27 | (try
|
29 | 28 | (if-let [v (ns-resolve (symbol ns) (symbol sym))]
|
30 | 29 | (let [profiled? (p/toggle-profile-var* v)]
|
31 |
| - (t/send transport |
32 |
| - (response-for |
33 |
| - msg |
34 |
| - :status :done |
35 |
| - :value (if profiled? "profiled" "unprofiled")))) |
36 |
| - (t/send transport |
37 |
| - (response-for |
38 |
| - msg |
39 |
| - :status #{:toggle-profile-not-such-var :done} |
40 |
| - :value "unbound"))) |
41 |
| - (catch Exception e (send-exception e msg transport)))) |
| 30 | + (respond-to msg |
| 31 | + :status :done |
| 32 | + :value (if profiled? "profiled" "unprofiled"))) |
| 33 | + (respond-to msg |
| 34 | + :status #{:toggle-profile-not-such-var :done} |
| 35 | + :value "unbound")) |
| 36 | + (catch Exception e (send-exception e msg)))) |
42 | 37 |
|
43 | 38 | (defn profile-var-summary
|
44 | 39 | [{:keys [ns sym transport] :as msg}]
|
45 | 40 | (try
|
46 | 41 | (if-let [v (ns-resolve (symbol ns) (symbol sym))]
|
47 | 42 | (if-let [table (with-out-str (binding [*err* *out*]
|
48 | 43 | (p/print-entry-summary v)))]
|
49 |
| - (t/send transport |
50 |
| - (response-for msg |
51 |
| - :status :done |
52 |
| - :err table)) |
53 |
| - (t/send transport |
54 |
| - (response-for msg |
55 |
| - :status :done |
56 |
| - :err (format "No profile data for %s." v)))) |
57 |
| - (t/send transport |
58 |
| - (response-for msg |
59 |
| - :status :done |
60 |
| - :value (format "Var %s/%s is not bound." ns sym)))) |
61 |
| - (catch Exception e (prn :e e) (send-exception e msg transport)))) |
| 44 | + (respond-to msg |
| 45 | + :status :done |
| 46 | + :err table) |
| 47 | + (respond-to msg |
| 48 | + :status :done |
| 49 | + :err (format "No profile data for %s." v))) |
| 50 | + (respond-to msg |
| 51 | + :status :done |
| 52 | + :value (format "Var %s/%s is not bound." ns sym))) |
| 53 | + (catch Exception e (prn :e e) (send-exception e msg)))) |
62 | 54 |
|
63 | 55 | (defn profile-summary
|
64 | 56 | [{:keys [transport] :as msg}]
|
65 | 57 | (try
|
66 |
| - (t/send transport |
67 |
| - (response-for msg |
68 |
| - :status :done |
69 |
| - :err (with-out-str |
70 |
| - (binding [*err* *out*] (p/print-summary))))) |
71 |
| - (catch Exception e (send-exception e msg transport)))) |
| 58 | + (respond-to msg |
| 59 | + :status :done |
| 60 | + :err (with-out-str |
| 61 | + (binding [*err* *out*] (p/print-summary)))) |
| 62 | + (catch Exception e (send-exception e msg)))) |
72 | 63 |
|
73 | 64 | (defn clear-profile
|
74 | 65 | [{:keys [transport] :as msg}]
|
75 | 66 | (try
|
76 | 67 | (p/clear-profile-data)
|
77 |
| - (t/send transport |
78 |
| - (response-for msg |
79 |
| - :status :done |
80 |
| - :value "cleared")) |
81 |
| - (catch Exception e (send-exception e msg transport)))) |
| 68 | + (respond-to msg |
| 69 | + :status :done |
| 70 | + :value "cleared") |
| 71 | + (catch Exception e (send-exception e msg)))) |
82 | 72 |
|
83 | 73 | (defn toggle-profile-ns
|
84 | 74 | [{:keys [ns transport] :as msg}]
|
85 | 75 | (try (let [profiled? (p/toggle-profile-ns (symbol ns))]
|
86 |
| - (t/send transport |
87 |
| - (response-for |
88 |
| - msg |
89 |
| - :status :done |
90 |
| - :value (if profiled? "profiled" "unprofiled")))) |
91 |
| - (catch Exception e (send-exception e msg transport)))) |
| 76 | + (respond-to msg |
| 77 | + :status :done |
| 78 | + :value (if profiled? "profiled" "unprofiled"))) |
| 79 | + (catch Exception e (send-exception e msg)))) |
92 | 80 |
|
93 | 81 | (defn is-var-profiled
|
94 | 82 | [{:keys [ns sym transport] :as msg}]
|
95 | 83 | (try (let [var (ns-resolve (symbol ns) (symbol sym))
|
96 | 84 | profiled? (p/profiled? @var)]
|
97 |
| - (t/send transport |
98 |
| - (response-for |
99 |
| - msg |
100 |
| - :status :done |
101 |
| - :value (if profiled? "profiled" "unprofiled")))) |
102 |
| - (catch Exception e (send-exception e msg transport)))) |
| 85 | + (respond-to msg |
| 86 | + :status :done |
| 87 | + :value (if profiled? "profiled" "unprofiled"))) |
| 88 | + (catch Exception e (send-exception e msg)))) |
103 | 89 |
|
104 | 90 | (defn get-max-samples
|
105 | 91 | [{:keys [transport] :as msg}]
|
106 |
| - (try (t/send transport |
107 |
| - (response-for |
108 |
| - msg |
109 |
| - :status :done |
110 |
| - :value (str (p/max-sample-count)))) |
111 |
| - (catch Exception e (send-exception e msg transport)))) |
| 92 | + (try (respond-to msg |
| 93 | + :status :done |
| 94 | + :value (str (p/max-sample-count))) |
| 95 | + (catch Exception e (send-exception e msg)))) |
112 | 96 |
|
113 | 97 | (defn normalize-max-samples [n]
|
114 | 98 | (cond (and (sequential? n) (empty? n)) nil
|
|
119 | 103 | [{:keys [max-samples transport] :as msg}]
|
120 | 104 | (try (let [max-samples (normalize-max-samples max-samples)]
|
121 | 105 | (p/set-max-sample-count max-samples)
|
122 |
| - (t/send transport |
123 |
| - (response-for |
124 |
| - msg |
125 |
| - :status :done |
126 |
| - :value (str (p/max-sample-count))))) |
127 |
| - (catch Exception e (send-exception e msg transport)))) |
| 106 | + (respond-to msg |
| 107 | + :status :done |
| 108 | + :value (str (p/max-sample-count)))) |
| 109 | + (catch Exception e (send-exception e msg)))) |
128 | 110 |
|
129 | 111 | (defn handle-profile
|
130 | 112 | [handler msg]
|
|
0 commit comments