@@ -256,6 +256,13 @@ in the buffer."
256256
257257; ; Fuzzy completion for company-mode
258258
259+ (defun cider-completion-try-completion (string collection pred point )
260+ " Return longest common substring of all completions of STRING in COLLECTION.
261+
262+ This function is only needed to be a correct citizen in
263+ `completion-styles-alist' ."
264+ (try-completion string table pred))
265+
259266(defun cider-company-unfiltered-candidates (string &rest _ )
260267 " Return CIDER completion candidates for STRING as is, unfiltered."
261268 (cider-complete string))
@@ -268,17 +275,40 @@ in the buffer."
268275; ; which introduced `cider-company-enable-fuzzy-completion' )
269276(add-to-list 'completion-styles-alist
270277 '(cider
271- cider-company-unfiltered-candidates
278+ cider-completion-try-completion
272279 cider-company-unfiltered-candidates
273280 " CIDER backend-driven completion style." ))
274281
275282(defun cider-company-enable-fuzzy-completion ()
276- " Enable backend-driven fuzzy completion in the current buffer .
283+ " Enables `cider' completion style for CIDER in all buffers .
277284
278- DEPRECATED: please use `cider-enable-flex-completion' instead."
279- (setq-local completion-styles '(cider)))
285+ DEPRECATED: please use `cider-enable-cider-completion-style' instead."
286+ (interactive )
287+ (cider-enable-cider-completion-style))
288+
289+ (defun cider-enable-cider-completion-style ()
290+ " Enables `cider' completion style for CIDER in all buffers.
280291
281- (make-obsolete 'cider-company-enable-fuzzy-completion 'cider-enable-flex-completion " 1.8.0" )
292+ This style supports non-prefix completion candidates returned by the
293+ completion backend. Only affects the `cider' completion category."
294+ (interactive )
295+ (let* ((cider (assq 'cider completion-category-overrides))
296+ (found-styles (assq 'styles cider))
297+ (new-styles (if found-styles
298+ (cons 'styles (cons 'cider (cdr found-styles)))
299+ '(styles cider basic)))
300+ (new-cider (if cider
301+ (cons 'cider
302+ (cons new-styles
303+ (seq-remove (lambda (x ) (equal 'styles (car x)))
304+ (cdr cider))))
305+ (list 'cider new-styles)))
306+ (new-overrides (cons new-cider
307+ (seq-remove (lambda (x ) (equal 'cider (car x)))
308+ completion-category-overrides))))
309+ (setq completion-category-overrides new-overrides)))
310+
311+ (make-obsolete 'cider-company-enable-fuzzy-completion 'cider-enable-cider-completion-style " 1.17.0" )
282312
283313(defun cider-enable-flex-completion ()
284314 " Enables `flex' (fuzzy) completion for CIDER in all buffers.
0 commit comments