From e78b79c6cd30098b45a8ac24f9e8af9d2962b0ad Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 27 Aug 2023 01:12:29 +0300 Subject: refactor(tazjin/emacs): ivy,swiper,counsel -> vertico,consult 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 --- users/tazjin/emacs/config/bindings.el | 3 --- users/tazjin/emacs/config/desktop.el | 3 +-- users/tazjin/emacs/config/functions.el | 8 -------- users/tazjin/emacs/config/init.el | 32 +++++++++++--------------------- users/tazjin/emacs/config/mail-setup.el | 2 -- users/tazjin/emacs/default.nix | 7 ++----- 6 files changed, 14 insertions(+), 41 deletions(-) (limited to 'users/tazjin') diff --git a/users/tazjin/emacs/config/bindings.el b/users/tazjin/emacs/config/bindings.el index 100fb92223d3..17740b1950a7 100644 --- a/users/tazjin/emacs/config/bindings.el +++ b/users/tazjin/emacs/config/bindings.el @@ -36,9 +36,6 @@ ;; Open a file in project: (global-set-key (kbd "C-c f") 'project-find-file) -;; Search in a project -(global-set-key (kbd "C-c r g") 'rg-in-project) - ;; Open a file via magit: (global-set-key (kbd "C-c C-f") #'magit-find-file-worktree) diff --git a/users/tazjin/emacs/config/desktop.el b/users/tazjin/emacs/config/desktop.el index dc009a507405..810521db185a 100644 --- a/users/tazjin/emacs/config/desktop.el +++ b/users/tazjin/emacs/config/desktop.el @@ -220,7 +220,7 @@ in-progress." (exwm-input-set-key (kbd "C-c j") #'exwm-jump-to-buffer) ;; Launch applications / any command with completion (dmenu style!) -(exwm-input-set-key (kbd "s-d") #'counsel-linux-app) +;; (exwm-input-set-key (kbd "s-d") #'counsel-linux-app) ;; TODO(tazjin): completing-read version (exwm-input-set-key (kbd "s-x") #'run-external-command) (exwm-input-set-key (kbd "s-p") #'password-store-lookup) @@ -376,7 +376,6 @@ in-progress." ;; Notmuch shortcuts as EXWM globals ;; (g m => gmail) (exwm-input-set-key (kbd "s-g m") #'notmuch) -(exwm-input-set-key (kbd "s-g M") #'counsel-notmuch) (exwm-randr-enable) diff --git a/users/tazjin/emacs/config/functions.el b/users/tazjin/emacs/config/functions.el index ddb67f1bfd29..02ccab87d1c8 100644 --- a/users/tazjin/emacs/config/functions.el +++ b/users/tazjin/emacs/config/functions.el @@ -281,14 +281,6 @@ by looking for a `Cargo.toml' file." (magit-read-file-from-rev "HEAD" "Find file") #'pop-to-buffer-same-window)) -(defun rg-in-project (&optional prefix) - "Interactively call ripgrep in the current project, or fall - back to ripgrep default behaviour if prefix is set." - (interactive "P") - (counsel-rg nil (unless prefix - (if-let ((pr (project-current))) - (project-root pr))))) - (defun zoxide-open-project () "Query Zoxide for paths, and open the result as appropriate (magit or dired)." (interactive) 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) diff --git a/users/tazjin/emacs/config/mail-setup.el b/users/tazjin/emacs/config/mail-setup.el index 7fbece1b102a..1d7ab6d0b018 100644 --- a/users/tazjin/emacs/config/mail-setup.el +++ b/users/tazjin/emacs/config/mail-setup.el @@ -1,8 +1,6 @@ (require 'notmuch) -(require 'counsel-notmuch) ;; (global-set-key (kbd "C-c m") 'notmuch-hello) -;; (global-set-key (kbd "C-c C-m") 'counsel-notmuch) ;; (global-set-key (kbd "C-c C-e n") 'notmuch-mua-new-mail) (setq notmuch-cache-dir (format "%s/.cache/notmuch" (getenv "HOME"))) diff --git a/users/tazjin/emacs/default.nix b/users/tazjin/emacs/default.nix index 4744226fc72d..5b6257478485 100644 --- a/users/tazjin/emacs/default.nix +++ b/users/tazjin/emacs/default.nix @@ -29,8 +29,7 @@ pkgs.makeOverridable clojure-mode cmake-mode company - counsel - counsel-notmuch + consult d-mode deft direnv @@ -48,8 +47,6 @@ pkgs.makeOverridable ht hydra idle-highlight-mode - ivy - ivy-prescient jq-mode kotlin-mode kubernetes @@ -76,7 +73,6 @@ pkgs.makeOverridable rust-mode sly string-edit-at-point - swiper telephone-line terraform-mode toml-mode @@ -84,6 +80,7 @@ pkgs.makeOverridable undo-tree use-package uuidgen + vertico vterm web-mode websocket -- cgit 1.4.1