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 22
33## master (unreleased)
44
5+ * [ #923 ] ( https://github.com/clojure-emacs/cider-nrepl/pull/923 ) : Complete: make sorting order customizable.
6+
57## 0.53.1 (2025-03-26)
68
79* 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::
139139Optional parameters::
140140* `:context` Completion context for compliment.
141141* `:extra-metadata` List of extra-metadata fields. Possible values: arglists, doc.
142+ * `:sort-order` Sorting order of candidates. Possible values: by-name, by-length.
142143
143144
144145Returns::
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
196196 " prefix" " The prefix for completion candidates"
197197 " session" " The current session" }
198198 :optional {" context" " Completion context for compliment."
199+ " sort-order" " Sorting order of candidates. Possible values: by-name, by-length."
199200 " extra-metadata" " List of extra-metadata fields. Possible values: arglists, doc." }
200201 :returns {" completions" " A list of possible completions" }}
201202 " complete-doc"
Original file line number Diff line number Diff line change 4545 :compliment.sources.local-bindings/local-bindings ])
4646
4747(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}]
4950 ; ; TODO: Drop legacy symbol param in version 1.0
5051 (let [prefix (str (or prefix symbol))
5152 completion-opts {:ns (misc/as-sym ns )
5253 :context context
54+ :sort-order (or (some-> sort-order keyword) :by-length )
5355 :extra-metadata (set (map keyword extra-metadata))}]
5456 (if-let [cljs-env (cljs/grab-cljs-env msg)]
5557 ; ; ClojureScript completion
Original file line number Diff line number Diff line change 4040 :prefix " assoc"
4141 :extra-metadata [" arglists" " doc" ]})))))
4242
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+
4362 (testing " macro metadata"
4463 (is+ {:arglists [" [name & opts+sigs]" ]
4564 :doc string?}
You can’t perform that action at this time.
0 commit comments