summaryrefslogtreecommitdiffstats
path: root/lisp/init-vertico.el
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-05-18 18:47:18 +0200
committerMartin Polden <mpolden@mpolden.no>2023-05-18 21:45:25 +0200
commitf9fe4137eab1f2b98724c5237c4cce794bbc3510 (patch)
tree3159bc4397a87553d0b851f43b931efb91decf2b /lisp/init-vertico.el
parenta68aec08f47e4200cd5d3c7d81cb220b74a4c3c6 (diff)
vertico: replace amx, ivy and consult
Diffstat (limited to 'lisp/init-vertico.el')
-rw-r--r--lisp/init-vertico.el45
1 files changed, 45 insertions, 0 deletions
diff --git a/lisp/init-vertico.el b/lisp/init-vertico.el
new file mode 100644
index 0000000..9cea2fd
--- /dev/null
+++ b/lisp/init-vertico.el
@@ -0,0 +1,45 @@
+;;; init-vertico.el --- a better completion ui -*- lexical-binding:t -*-
+;;; Commentary:
+;;; Code:
+
+;; save minibuffer history so that vertico can use it for sorting
+(use-package savehist
+ :config
+ (savehist-mode 1))
+
+;; enhanced search and navigation commands
+(use-package consult
+ :ensure t
+ :bind (("C-c i" . consult-imenu)
+ ("C-c I" . consult-imenu-multi)))
+
+;; completion style providing fuzzy matching
+(use-package orderless
+ :ensure t
+ :init
+ ;; https://github.com/minad/vertico/blob/c36ad0c9471010a0c160268cc6581edf4959e2d3/README.org#configuration
+ (setq orderless-matching-styles '(orderless-flex)
+ completion-styles '(orderless basic)
+ completion-category-defaults nil
+ completion-category-overrides '((file (styles partial-completion)))))
+
+;; a better completion ui
+(use-package vertico
+ :ensure t
+ :config
+ (vertico-mode 1))
+
+;; make directory navigation behave like ido
+;; https://github.com/minad/vertico/blob/c36ad0c9471010a0c160268cc6581edf4959e2d3/README.org#extensions
+(use-package vertico-directory
+ :ensure nil
+ :after vertico
+ :bind (:map vertico-map
+ ("RET" . vertico-directory-enter)
+ ("DEL" . vertico-directory-delete-char)
+ ("M-DEL" . vertico-directory-delete-word))
+ :hook (rfn-eshadow-update-overlay . vertico-directory-tidy))
+
+(provide 'init-vertico)
+
+;;; init-vertico.el ends here