summaryrefslogtreecommitdiffstats
path: root/lisp
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
parenta68aec08f47e4200cd5d3c7d81cb220b74a4c3c6 (diff)
vertico: replace amx, ivy and consult
Diffstat (limited to 'lisp')
-rw-r--r--lisp/init-amx.el12
-rw-r--r--lisp/init-counsel.el12
-rw-r--r--lisp/init-ivy.el24
-rw-r--r--lisp/init-vertico.el45
4 files changed, 45 insertions, 48 deletions
diff --git a/lisp/init-amx.el b/lisp/init-amx.el
deleted file mode 100644
index 18b5728..0000000
--- a/lisp/init-amx.el
+++ /dev/null
@@ -1,12 +0,0 @@
-;;; init-amx.el --- configure a better M-x -*- lexical-binding:t -*-
-;;; Commentary:
-;;; Code:
-
-(use-package amx
- :ensure t
- :config
- (amx-mode 1))
-
-(provide 'init-amx)
-
-;;; init-amx.el ends here
diff --git a/lisp/init-counsel.el b/lisp/init-counsel.el
deleted file mode 100644
index dc081c8..0000000
--- a/lisp/init-counsel.el
+++ /dev/null
@@ -1,12 +0,0 @@
-;;; init-counsel.el --- improve ivy integration -*- lexical-binding:t -*-
-;;; Commentary:
-;;; Code:
-
-(use-package counsel
- :ensure t
- :bind (("M-x" . counsel-M-x) ;; uses amx when present
- ("C-c i" . counsel-imenu)))
-
-(provide 'init-counsel)
-
-;;; init-counsel.el ends here
diff --git a/lisp/init-ivy.el b/lisp/init-ivy.el
deleted file mode 100644
index 55b60b2..0000000
--- a/lisp/init-ivy.el
+++ /dev/null
@@ -1,24 +0,0 @@
-;;; init-ivy.el --- configure ivy -*- lexical-binding:t -*-
-;;; Commentary:
-;;; Code:
-
-;; ivy uses flx sorting if it's installed
-(use-package flx
- :ensure t)
-
-(use-package ivy
- :ensure t
- :diminish ivy-mode
- :init
- ;; use fuzzy matching by default
- (setq ivy-re-builders-alist '((t . ivy--regex-fuzzy)))
-
- ;; allow selecting literal input
- (setq ivy-use-selectable-prompt t)
-
- :config
- (ivy-mode 1))
-
-(provide 'init-ivy)
-
-;;; init-ivy.el ends here
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