;; -*- lexical-binding: t -*- (when (gx/maybe-require-package 'vertico) (add-hook 'after-init-hook #'vertico-mode)) (setq vertico-resize t vertico-count 20 vertico-cycle t) (setq completion-ignore-case t read-file-name-completion-ignore-case t read-buffer-completion-ignore-case t) (with-eval-after-load 'vertico (define-key vertico-map (kbd "C-c j") 'vertico-quick-jump) (define-key vertico-map (kbd "C-c C-j") 'vertico-quick-jump) (define-key vertico-map (kbd "C-d") (lambda () (interactive) (vertico-next (/ vertico-count 2)))) (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 (kbd "fb") 'consult-buffer (kbd "fm") 'consult-recent-file (kbd "fc") 'execute-extended-command (kbd "fl") 'consult-line (kbd "fs") 'consult-imenu (kbd "fa") 'consult-org-agenda) (evil-define-key 'normal 'eglot--managed-mode (kbd "fS") 'consult-eglot-symbols))) (when (executable-find "rg") (setq affe-grep-command "rg --null --line-buffered --color=never --max-columns=1000 \ --path-separator / -v ^$ \ --smart-case --no-heading --line-number --hidden --glob !.git .")) (when (executable-find "fd") (setq affe-find-command "fd --type f --hidden --follow --exclude .git")) (when (gx/maybe-require-package 'affe) (with-eval-after-load 'evil (evil-define-key 'normal 'global (kbd "ff") 'affe-find (kbd "fr") 'affe-grep)) (with-eval-after-load 'orderless (defun gx/affe-orderless-regexp-compiler (input _type _ignorecase) (setq input (orderless-pattern-compiler input)) (cons input (lambda (str) (orderless--highlight input str)))) (setq affe-regexp-compiler #'gx/affe-orderless-regexp-compiler)) (with-eval-after-load 'consult (consult-customize affe-grep affe-find :preview-key (kbd "C-c C-p")))) (setq consult-preview-key (kbd "C-c C-p")) (when (gx/maybe-require-package 'savehist) (add-hook 'after-init-hook #'savehist-mode)) (provide 'init-minibuffer)