@@ -256,6 +256,14 @@ in the buffer."
256256
257257; ; Fuzzy completion for company-mode
258258
259+ (defun cider-completion-try-completion (string collection pred _ )
260+ " Return longest common substring of all completions of STRING in COLLECTION,
261+ also pass PRED to `try-completion' .
262+
263+ This function is only needed to be a correct citizen in
264+ `completion-styles-alist' ."
265+ (try-completion string collection pred))
266+
259267(defun cider-company-unfiltered-candidates (string &rest _ )
260268 " Return CIDER completion candidates for STRING as is, unfiltered."
261269 (cider-complete string))
@@ -268,17 +276,40 @@ in the buffer."
268276; ; which introduced `cider-company-enable-fuzzy-completion' )
269277(add-to-list 'completion-styles-alist
270278 '(cider
271- cider-company-unfiltered-candidates
279+ cider-completion-try-completion
272280 cider-company-unfiltered-candidates
273281 " CIDER backend-driven completion style." ))
274282
275283(defun cider-company-enable-fuzzy-completion ()
276- " Enable backend-driven fuzzy completion in the current buffer .
284+ " Enables `cider' completion style for CIDER in all buffers .
277285
278- DEPRECATED: please use `cider-enable-flex-completion' instead."
279- (setq-local completion-styles '(cider)))
286+ DEPRECATED: please use `cider-enable-cider-completion-style' instead."
287+ (interactive )
288+ (cider-enable-cider-completion-style))
289+
290+ (defun cider-enable-cider-completion-style ()
291+ " Enables `cider' completion style for CIDER in all buffers.
280292
281- (make-obsolete 'cider-company-enable-fuzzy-completion 'cider-enable-flex-completion " 1.8.0" )
293+ This style supports non-prefix completion candidates returned by the
294+ completion backend. Only affects the `cider' completion category."
295+ (interactive )
296+ (let* ((cider (assq 'cider completion-category-overrides))
297+ (found-styles (assq 'styles cider))
298+ (new-styles (if found-styles
299+ (cons 'styles (cons 'cider (cdr found-styles)))
300+ '(styles cider basic)))
301+ (new-cider (if cider
302+ (cons 'cider
303+ (cons new-styles
304+ (seq-remove (lambda (x ) (equal 'styles (car x)))
305+ (cdr cider))))
306+ (list 'cider new-styles)))
307+ (new-overrides (cons new-cider
308+ (seq-remove (lambda (x ) (equal 'cider (car x)))
309+ completion-category-overrides))))
310+ (setq completion-category-overrides new-overrides)))
311+
312+ (make-obsolete 'cider-company-enable-fuzzy-completion 'cider-enable-cider-completion-style " 1.17.0" )
282313
283314(defun cider-enable-flex-completion ()
284315 " Enables `flex' (fuzzy) completion for CIDER in all buffers.
0 commit comments