File tree Expand file tree Collapse file tree 3 files changed +23
-11
lines changed Expand file tree Collapse file tree 3 files changed +23
-11
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
8
9
9
### Fixed
10
10
* Fix a bug where the reader was double counting the CRLF newline seq in metadata (#1063 )
11
+ * Conform to the ` cider-nrepl ` ` info ` ops spec by ensuring result's ` :file ` is URI, also added missing : column number (#1066 )
11
12
12
13
## [ v0.2.3]
13
14
### Added
Original file line number Diff line number Diff line change 6
6
[basilisp.string :as str])
7
7
(:import basilisp.logconfig
8
8
logging
9
+ os
9
10
socketserver
10
11
sys
11
12
traceback
13
+ urllib
12
14
uuid))
13
15
14
16
(def ^:private logger
222
224
"Look up ``:sym`` (CIDER) or ``:symbol`` (calva) from ``request`` in ``ns``
223
225
(or if not provided ``:eval-ns`` from ``client*``) and pass results to ``send-fn``.
224
226
225
- Serves both :eldoc and :info ``request`` :op's."
227
+ Serves both cider-nrepl's :eldoc and :info ``request`` :op's."
226
228
[{:keys [ns client*] :as request} send-fn]
227
229
(let [mapping-type (-> request :op)
228
230
{:keys [eval-ns]} @client*]
237
239
[tp var-maybe] (symbol-identify lookup-ns sym-str)
238
240
var-meta (when (= tp :var) (meta var-maybe))
239
241
240
- {:keys [arglists doc file ns line] symname :name} var-meta
242
+ {:keys [arglists doc file ns line col ] symname :name} var-meta
241
243
242
244
ref (when (= tp :var) (var-get var-maybe))
243
245
response (when symname
254
256
:info {"doc" doc
255
257
"ns" (str ns)
256
258
"name" (str symname)
257
- "file" file
259
+ "file" (if (os.path/isabs file)
260
+ (->> (urllib.parse/quote file)
261
+ (urllib.parse/urljoin "file:"))
262
+ file)
258
263
"line" line
264
+ "column" col
259
265
"arglists-str" (forms-join arglists)
260
266
"status" ["done"]}))
261
267
status (if (and (nil? symname) (= mapping-type :eldoc) )
322
328
handlers for those operations."
323
329
{:eval handle-eval
324
330
:describe handle-describe
325
- :info handle-lookup
326
- :eldoc handle-lookup
331
+ :info handle-lookup ;; cider-nrepl middleware
332
+ :eldoc handle-lookup ;; cider-nrepl middleware
327
333
:clone handle-clone
328
334
:close handle-close
329
335
:load-file handle-load-file
Original file line number Diff line number Diff line change 12
12
socket
13
13
tempfile
14
14
threading
15
- time))
15
+ time
16
+ urllib))
16
17
17
18
(use-fixtures :each fixtures/tempdir)
18
19
454
455
(let [{:keys [status]} (client-recv! client)]
455
456
(is (= ["done"] status)))
456
457
(client-send! client {:id (id-inc!) :op "info" :ns "user" :sym "sort-by"})
457
- (let [{:keys [file line] :as response} (client-recv! client)
458
- {:keys [doc]
459
- meta-file :file} (meta (resolve 'sort-by))]
458
+ (let [{:keys [file line column] :as response} (client-recv! client)
459
+ {:keys [doc col]
460
+ meta-file :file
461
+ meta-line :line} (meta (resolve 'sort-by))
462
+ meta-file-uri (->> (urllib.parse/quote meta-file)
463
+ (urllib.parse/urljoin "file:"))]
460
464
(is (= {:ns "basilisp.core" :status ["done"] :id @id* :arglists-str "[keyfn coll]\n[keyfn cmp coll]"
465
+ :line line :column col
461
466
:doc doc :name "sort-by"}
462
- (select-keys response [:ns :status :id :arglists-str :doc :name])))
463
- (is (= meta-file file)))
467
+ (select-keys response [:ns :status :id :arglists-str :doc :name :line :column ])))
468
+ (is (= meta-file-uri file)))
464
469
465
470
;; test fqdn, aliases and refers
466
471
(client-send! client {:id (id-inc!) :op "eval"
You can’t perform that action at this time.
0 commit comments