about summary refs log tree commit diff
path: root/users/tazjin/emacs/config/init.el
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2023-08-26T22·12+0300
committertazjin <tazjin@tvl.su>2023-08-26T23·30+0000
commite78b79c6cd30098b45a8ac24f9e8af9d2962b0ad (patch)
tree72b8a051671726923efd0df89dbb3903f7b12def /users/tazjin/emacs/config/init.el
parent9afa1dacf88115adb5153486681745024eecfa95 (diff)
refactor(tazjin/emacs): ivy,swiper,counsel -> vertico,consult r/6526
vertico and consult are more modern versions of interactive narrowing
helpers, as those implemented by ivy and its related packages.

The primary differences (and what I care about here) is that they are
more focused on integration with the core Emacs primitives, rather
than building an ecosystem around them.

For example:

* vertico enhances `completing-read' and friends, but does not attempt
  to provide its own ecosystem of functions to *trigger* completions.

* vertico integrates with the default `completion-style' system,
  meaning that I can continue to use things like prescient without
  extra packages that integrate it with vertico

* consult does not rely on vertico or any other specific completion
  framework (such as counsel/swiper do with ivy), and simply
  implements its functions using completing-read

This reduces the overall amount of code in the dependency closure and
leads to a less special setup.

Functionality is basically equivalent, except for two things which
counsel came with that I will need to substitute:

* counsel-notmuch (actually this was a separate package, but I didn't
  use it much anyways, so just ignoring it for now)
* counsel-linux-app (opening desktop shortcuts, this I will need to make)

As a side note, consult notes "This package is a part of GNU Emacs",
but it doesn't seem to be the case.

Change-Id: Ia046b763bf3d401b505e0f6393cfe1ccd6f41293
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9155
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'users/tazjin/emacs/config/init.el')
-rw-r--r--users/tazjin/emacs/config/init.el32
1 files changed, 11 insertions, 21 deletions
diff --git a/users/tazjin/emacs/config/init.el b/users/tazjin/emacs/config/init.el
index b16635df86af..7333a0b5df35 100644
--- a/users/tazjin/emacs/config/init.el
+++ b/users/tazjin/emacs/config/init.el
@@ -33,9 +33,10 @@
   :hook ((prog-mode . company-mode))
   :config (setq company-tooltip-align-annotations t))
 
-(use-package counsel
-  :after (ivy)
-  :config (counsel-mode 1))
+(use-package consult
+  :bind
+  ("C-c r g" . consult-ripgrep)
+  ("C-s" . consult-line))
 
 (use-package dash)
 (use-package gruber-darker-theme)
@@ -50,18 +51,6 @@
 (use-package hydra)
 (use-package idle-highlight-mode :hook ((prog-mode . idle-highlight-mode)))
 
-(use-package ivy
-  :config
-  (ivy-mode 1))
-
-(use-package ivy-prescient
-  :after (ivy prescient)
-  :config
-  (ivy-prescient-mode)
-  ;; Fixes an issue with how regexes are passed to ripgrep from counsel,
-  ;; see raxod502/prescient.el#43
-  (setf (alist-get 'counsel-rg ivy-re-builders-alist) #'ivy--regex-plus))
-
 (use-package multiple-cursors)
 
 (use-package notmuch
@@ -79,18 +68,15 @@
   (pinentry-start))
 
 (use-package prescient
-  :after (ivy counsel)
-  :config (prescient-persist-mode))
+  :config
+  (prescient-persist-mode)
+  (setq completion-styles '(basic prescient)))
 
 (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode))
 (use-package rainbow-mode)
 (use-package s)
 (use-package string-edit-at-point)
 
-(use-package swiper
-  :after (counsel ivy)
-  :bind (("C-s" . swiper)))
-
 (use-package telephone-line) ;; configuration happens outside of use-package
 (use-package term-switcher)
 
@@ -205,6 +191,10 @@
 
 (use-package tvl)
 
+(use-package vertico
+  :config
+  (vertico-mode))
+
 (use-package web-mode)
 (use-package yaml-mode)
 (use-package zoxide)