|
164 | 164 |
|
165 | 165 | (defn lookup [ctx msg os mapping-type {:keys [debug] :as opts}]
|
166 | 166 | (let [ns-str (:ns msg)
|
167 |
| - sym-str (or (:sym msg) (:symbol msg)) |
168 |
| - sci-ns (when ns-str |
169 |
| - (the-sci-ns ctx (symbol ns-str)))] |
| 167 | + sym-str (or (:sym msg) (:symbol msg))] |
170 | 168 | (try
|
171 |
| - (sci/binding [sci/ns (or sci-ns @sci/ns)] |
172 |
| - (let [m (sci/eval-string* ctx (format " |
| 169 | + (let [sci-ns (when ns-str |
| 170 | + (the-sci-ns ctx (symbol ns-str)))] |
| 171 | + (sci/binding [sci/ns (or sci-ns @sci/ns)] |
| 172 | + (let [m (sci/eval-string* ctx (format " |
173 | 173 | (let [ns '%s
|
174 | 174 | full-sym '%s]
|
175 | 175 | (when-let [v (ns-resolve ns full-sym)]
|
|
179 | 179 | :name (:name m)
|
180 | 180 | :ns (some-> m :ns ns-name)
|
181 | 181 | :val @v))))" ns-str sym-str))
|
182 |
| - doc (:doc m) |
183 |
| - reply (case mapping-type |
184 |
| - :eldoc (cond-> |
185 |
| - {"ns" (:ns m) |
186 |
| - "name" (:name m) |
187 |
| - "eldoc" (mapv #(mapv str %) (:arglists m)) |
188 |
| - "type" (cond |
189 |
| - (ifn? (:val m)) "function" |
190 |
| - :else "variable") |
191 |
| - "status" #{"done"}} |
192 |
| - doc (assoc "docstring" doc)) |
193 |
| - :lookup (cond-> |
194 |
| - {"ns" (:ns m) |
195 |
| - "name" (:name m) |
196 |
| - "arglists-str" (forms-join (:arglists m)) |
197 |
| - "status" #{"done"}} |
198 |
| - doc (assoc "doc" doc)))] |
199 |
| - (utils/send os |
200 |
| - (utils/response-for msg reply) opts))) |
| 182 | + doc (:doc m) |
| 183 | + reply (case mapping-type |
| 184 | + :eldoc (cond-> |
| 185 | + {"ns" (:ns m) |
| 186 | + "name" (:name m) |
| 187 | + "eldoc" (mapv #(mapv str %) (:arglists m)) |
| 188 | + "type" (cond |
| 189 | + (ifn? (:val m)) "function" |
| 190 | + :else "variable") |
| 191 | + "status" #{"done"}} |
| 192 | + doc (assoc "docstring" doc)) |
| 193 | + :lookup (cond-> |
| 194 | + {"ns" (:ns m) |
| 195 | + "name" (:name m) |
| 196 | + "arglists-str" (forms-join (:arglists m)) |
| 197 | + "status" #{"done"}} |
| 198 | + doc (assoc "doc" doc)))] |
| 199 | + (utils/send os |
| 200 | + (utils/response-for msg reply) opts)))) |
201 | 201 | (catch Throwable e
|
202 | 202 | (when debug (println e))
|
203 | 203 | (let [status (cond-> #{"done"}
|
|
0 commit comments