File tree Expand file tree Collapse file tree 5 files changed +26
-1
lines changed
doc/modules/ROOT/pages/nrepl-api
test/clj/cider/nrepl/middleware Expand file tree Collapse file tree 5 files changed +26
-1
lines changed Original file line number Diff line number Diff line change 2
2
3
3
## master (unreleased)
4
4
5
+ * [ #923 ] ( https://github.com/clojure-emacs/cider-nrepl/pull/923 ) : Complete: make sorting order customizable.
6
+
5
7
## 0.53.1 (2025-03-26)
6
8
7
9
* Bump ` compliment ` to [ 0.7.0] ( https://github.com/alexander-yakushev/compliment/blob/master/CHANGELOG.md#070-2025-03-25 ) .
Original file line number Diff line number Diff line change @@ -139,6 +139,7 @@ Required parameters::
139
139
Optional parameters::
140
140
* `:context` Completion context for compliment.
141
141
* `:extra-metadata` List of extra-metadata fields. Possible values: arglists, doc.
142
+ * `:sort-order` Sorting order of candidates. Possible values: by-name, by-length.
142
143
143
144
144
145
Returns::
Original file line number Diff line number Diff line change @@ -196,6 +196,7 @@ Depending on the type of the return value of the evaluation this middleware may
196
196
" prefix" " The prefix for completion candidates"
197
197
" session" " The current session" }
198
198
:optional {" context" " Completion context for compliment."
199
+ " sort-order" " Sorting order of candidates. Possible values: by-name, by-length."
199
200
" extra-metadata" " List of extra-metadata fields. Possible values: arglists, doc." }
200
201
:returns {" completions" " A list of possible completions" }}
201
202
" complete-doc"
Original file line number Diff line number Diff line change 45
45
:compliment.sources.local-bindings/local-bindings ])
46
46
47
47
(defn complete
48
- [{:keys [ns prefix symbol context extra-metadata enhanced-cljs-completion?] :as msg}]
48
+ [{:keys [ns prefix symbol context extra-metadata enhanced-cljs-completion? sort-order]
49
+ :as msg}]
49
50
; ; TODO: Drop legacy symbol param in version 1.0
50
51
(let [prefix (str (or prefix symbol))
51
52
completion-opts {:ns (misc/as-sym ns )
52
53
:context context
54
+ :sort-order (or (some-> sort-order keyword) :by-length )
53
55
:extra-metadata (set (map keyword extra-metadata))}]
54
56
(if-let [cljs-env (cljs/grab-cljs-env msg)]
55
57
; ; ClojureScript completion
Original file line number Diff line number Diff line change 40
40
:prefix " assoc"
41
41
:extra-metadata [" arglists" " doc" ]})))))
42
42
43
+ (testing " default sorting"
44
+ (is+ (matchers/prefix [{:candidate " map" }
45
+ {:candidate " map?" }
46
+ {:candidate " mapv" }
47
+ {:candidate " mapcat" }])
48
+ (:completions (session/message {:op " complete"
49
+ :ns " user"
50
+ :prefix " map" }))))
51
+
52
+ (testing " by-name sorting"
53
+ (is+ (matchers/prefix [{:candidate " map" }
54
+ {:candidate " map-entry?" }
55
+ {:candidate " map-indexed" }
56
+ {:candidate " map?" }])
57
+ (:completions (session/message {:op " complete"
58
+ :ns " user"
59
+ :prefix " map"
60
+ :sort-order " by-name" }))))
61
+
43
62
(testing " macro metadata"
44
63
(is+ {:arglists [" [name & opts+sigs]" ]
45
64
:doc string?}
You can’t perform that action at this time.
0 commit comments