From 932f3f34745ed376b5c63e90ebf75103f26f5d7c Mon Sep 17 00:00:00 2001 From: jao Date: Fri, 3 Dec 2021 02:09:31 +0000 Subject: orderless style dispatchers ftw --- completion.org | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'completion.org') diff --git a/completion.org b/completion.org index 0c14df1..c0b0a88 100644 --- a/completion.org +++ b/completion.org @@ -30,11 +30,26 @@ (use-package orderless :ensure t :init + (defun jao-orderless--first-initialism (pattern index _total) + (when (and (= index 0) (string-prefix-p "-" pattern)) + `(orderless-strict-full-initialism . ,(substring pattern 1)))) + + (defun jao-orderless--regexp (pattern _index _total) + (when (string-suffix-p "%" pattern) + `(orderless-regexp . ,(substring pattern 0 -1)))) + + (defun jao-orderless--without-if-bang (pattern _index _total) + (cond ((equal "!" pattern) '(orderless-literal . "")) + ((string-prefix-p "!" pattern) + `(orderless-without-literal . ,(substring pattern 1))))) + (setq completion-styles '(orderless) orderless-skip-highlighting nil - orderless-component-separator "[ -/]+" - orderless-matching-styles - '(orderless-literal orderless-initialism orderless-regexp))) + orderless-component-separator " +" + orderless-matching-styles '(orderless-literal orderless-prefixes) + orderless-style-dispatchers '(jao-orderless--first-initialism + jao-orderless--regexp + jao-orderless--without-if-bang))) #+end_src * corfu #+begin_src emacs-lisp -- cgit v1.2.3