From 0e18684eef402794f470b5a10658002136cb5195 Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Sun, 20 Mar 2022 10:12:46 +0800 Subject: Separate completion config (emacs) --- .emacs.d/init.el | 1 + .emacs.d/lisp/init-completion.el | 29 +++++++++++++++++++++++++++++ .emacs.d/lisp/init-corfu.el | 6 ------ .emacs.d/lisp/init-minibuffer.el | 23 ----------------------- 4 files changed, 30 insertions(+), 29 deletions(-) create mode 100644 .emacs.d/lisp/init-completion.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 8fad1fc..bd82916 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -20,6 +20,7 @@ (require 'init-package) (require 'init-utils) (require 'init-evil) +(require 'init-completion) (require 'init-minibuffer) (require 'init-company) (require 'init-corfu) diff --git a/.emacs.d/lisp/init-completion.el b/.emacs.d/lisp/init-completion.el new file mode 100644 index 0000000..fb2b2b0 --- /dev/null +++ b/.emacs.d/lisp/init-completion.el @@ -0,0 +1,29 @@ +(when (gx/maybe-require-package 'orderless) + + (setq orderless-matching-styles + '(orderless-literal orderless-regexp orderless-prefixes)) + + (defun gx/orderless-without-if-bang (pattern _index _total) + (cond + ((equal "!" pattern) + '(orderless-literal . "")) + ((string-prefix-p "!" pattern) + `(orderless-without-literal . ,(substring pattern 1))))) + + (defun gx/orderless-flex-if-twiddle (pattern _index _total) + (when (string-suffix-p "~" pattern) + `(orderless-flex . ,(substring pattern 0 -1)))) + + (setq orderless-style-dispatchers + '(gx/orderless-without-if-bang + gx/orderless-flex-if-twiddle)) + + (setq completion-styles '(substring orderless flex) + completion-category-defaults nil + completion-category-overrides + '((file (styles . (partial-completion)))))) + +(when (gx/maybe-require-package 'cape) + (add-to-list 'completion-at-point-functions #'cape-file)) + +(provide 'init-completion) diff --git a/.emacs.d/lisp/init-corfu.el b/.emacs.d/lisp/init-corfu.el index b72125c..ec88b8d 100644 --- a/.emacs.d/lisp/init-corfu.el +++ b/.emacs.d/lisp/init-corfu.el @@ -17,10 +17,4 @@ (define-key corfu-map (kbd "S-TAB") 'corfu-previous) (define-key corfu-map (kbd "") 'corfu-previous)) -(when (gx/maybe-require-package 'orderless) - (setq completion-styles '(orderless) - completion-category-defaults nil - completion-category-overrides - '((file (styles . (partial-completion)))))) - (provide 'init-corfu) diff --git a/.emacs.d/lisp/init-minibuffer.el b/.emacs.d/lisp/init-minibuffer.el index bf38675..6fa5061 100644 --- a/.emacs.d/lisp/init-minibuffer.el +++ b/.emacs.d/lisp/init-minibuffer.el @@ -18,29 +18,6 @@ (define-key vertico-map (kbd "C-u") (lambda () (interactive) (vertico-previous (/ vertico-count 2))))) -(when (gx/maybe-require-package 'orderless) - (setq orderless-matching-styles '(orderless-literal orderless-regexp orderless-flex)) - - (defun gx/orderless-without-if-bang (pattern _index _total) - (cond - ((equal "!" pattern) - '(orderless-literal . "")) - ((string-prefix-p "!" pattern) - `(orderless-without-literal . ,(substring pattern 1))))) - - (defun gx/orderless-flex-if-twiddle (pattern _index _total) - (when (string-suffix-p "~" pattern) - `(orderless-flex . ,(substring pattern 0 -1)))) - - (setq orderless-style-dispatchers '(gx/orderless-without-if-bang - gx/orderless-flex-if-twiddle)) - - (defun gx/setup-completion-in-minibuffer () - (setq-local completion-styles '(substring orderless) - completion-category-defaults nil - completion-category-overrides '((file (styles partial-completion))))) - (add-hook 'minibuffer-setup-hook #'gx/setup-completion-in-minibuffer)) - (when (gx/maybe-require-package 'consult) (with-eval-after-load 'evil (evil-define-key 'normal 'global -- cgit v1.2.3