From 0e6a7b6290d15c084c2b144961aa6adb48b32c0f Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Thu, 24 Jun 2021 22:39:17 +0100 Subject: [PATCH] feat(editor): switch to vertico+orderless from selectrum+prescient Personally I find orderless is giving me better results than prescient when fuzzy/flex matching is enabled. Hence the switch to orderless. I also split the modules apart to ensure, that selectrum, vertico, prescient and orderless can be mixed and matched however and work correctly. And the switch from to vertico from selectrum is mostly cause I like it's wraparound/cycle feature, where end/beginning of the candidate list will wrap around. --- core/siren-core-modules.el | 5 ++++- modules/completion/siren-company-prescient.el | 20 +++++++++++++++++++ modules/editor/siren-orderless.el | 7 ++++++- modules/editor/siren-prescient.el | 7 ------- modules/editor/siren-selectrum-prescient.el | 19 ++++++++++++++++++ modules/editor/siren-selectrum.el | 8 -------- modules/editor/siren-vertico.el | 6 +++--- straight/versions/default.el | 4 ++-- 8 files changed, 54 insertions(+), 22 deletions(-) create mode 100644 modules/completion/siren-company-prescient.el create mode 100644 modules/editor/siren-selectrum-prescient.el diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index c601958..e99e53a 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -36,7 +36,6 @@ (require 'siren-minions) (require 'siren-mwim) (require 'siren-rainbow) -(require 'siren-selectrum) (require 'siren-recentf) (require 'siren-savehist) (require 'siren-undo-tree) @@ -44,6 +43,10 @@ (require 'siren-uniquify) (require 'siren-which-key) +;; Completion Systems and Interfaces +(require 'siren-vertico) +(require 'siren-orderless) + ;; Linting (require 'siren-flycheck) diff --git a/modules/completion/siren-company-prescient.el b/modules/completion/siren-company-prescient.el new file mode 100644 index 0000000..68d5bd8 --- /dev/null +++ b/modules/completion/siren-company-prescient.el @@ -0,0 +1,20 @@ +;;; siren-company-prescient.el --- jimeh's Emacs Siren: company-prescient configuration. + +;;; Commentary: + +;; Basic configuration for company-prescient. + +;;; Code: + +(require 'siren-company) +(require 'siren-prescient) + +(use-package company-prescient + :defer t + :after (prescient company) + + :config + (company-prescient-mode +1)) + +(provide 'siren-company-prescient) +;;; siren-company-prescient.el ends here diff --git a/modules/editor/siren-orderless.el b/modules/editor/siren-orderless.el index 18e28b9..2d387f3 100644 --- a/modules/editor/siren-orderless.el +++ b/modules/editor/siren-orderless.el @@ -14,7 +14,12 @@ orderless-prefixes orderless-regexp orderless-initialism - orderless-flex))) + orderless-flex)) + + :init + (with-eval-after-load 'selectrum + (setq selectrum-refine-candidates-function #'orderless-filter) + (setq selectrum-highlight-candidates-function #'orderless-highlight-matches))) (provide 'siren-orderless) ;;; siren-orderless.el ends here diff --git a/modules/editor/siren-prescient.el b/modules/editor/siren-prescient.el index dcbd4f3..628ae4c 100644 --- a/modules/editor/siren-prescient.el +++ b/modules/editor/siren-prescient.el @@ -19,12 +19,5 @@ :config (prescient-persist-mode +1)) -(use-package company-prescient - :defer t - :after (prescient company) - - :config - (company-prescient-mode +1)) - (provide 'siren-prescient) ;;; siren-prescient.el ends here diff --git a/modules/editor/siren-selectrum-prescient.el b/modules/editor/siren-selectrum-prescient.el new file mode 100644 index 0000000..cbaaa3e --- /dev/null +++ b/modules/editor/siren-selectrum-prescient.el @@ -0,0 +1,19 @@ +;;; siren-selectrum-prescient.el --- jimeh's Emacs Siren: selectrum-prescient configuration. + +;;; Commentary: + +;; Basic configuration for selectrum-prescient. + +;;; Code: + +(require 'siren-prescient) +(require 'siren-selectrum) + +(use-package selectrum-prescient + :after (selectrum) + + :config + (selectrum-prescient-mode +1)) + +(provide 'siren-selectrum-prescient) +;;; siren-selectrum-prescient.el ends here diff --git a/modules/editor/siren-selectrum.el b/modules/editor/siren-selectrum.el index 77cdf1c..4c44f03 100644 --- a/modules/editor/siren-selectrum.el +++ b/modules/editor/siren-selectrum.el @@ -6,8 +6,6 @@ ;;; Code: -(require 'siren-prescient) - (use-package selectrum :custom (selectrum-display-action nil) @@ -18,11 +16,5 @@ :config (selectrum-mode +1)) -(use-package selectrum-prescient - :after (selectrum) - - :config - (selectrum-prescient-mode +1)) - (provide 'siren-selectrum) ;;; siren-selectrum.el ends here diff --git a/modules/editor/siren-vertico.el b/modules/editor/siren-vertico.el index 2b0b994..40dea79 100644 --- a/modules/editor/siren-vertico.el +++ b/modules/editor/siren-vertico.el @@ -6,15 +6,15 @@ ;;; Code: -(require 'siren-orderless) - (use-package vertico :custom - (enable-recursive-minibuffers t) (resize-mini-windows nil) (vertico-count 12) (vertico-cycle t) + (enable-recursive-minibuffers t) + (resize-mini-windows nil) + :init (defun siren-crm-indicator (args) (cons (concat "[CRM] " (car args)) (cdr args))) diff --git a/straight/versions/default.el b/straight/versions/default.el index 2d26916..eb98ed5 100644 --- a/straight/versions/default.el +++ b/straight/versions/default.el @@ -127,6 +127,7 @@ ("ob-go" . "2067ed55f4c1d33a43cb3f6948609d240a8915f5") ("ob-http" . "b1428ea2a63bcb510e7382a1bf5fe82b19c104a7") ("ob-mermaid" . "cca09b64eff689d8bb15a77de9d4c7fe9845a1f9") + ("orderless" . "2646dad28c0819fbe9ee521d39efb9ae40e03982") ("osx-trash" . "af74a2055a15bf4182d8196600f7decd66eec634") ("ox-gfm" . "99f93011b069e02b37c9660b8fcb45dab086a07f") ("ox-pandoc" . "aa37dc7e94213d4ebedb85c384c1ba35007da18e") @@ -140,7 +141,6 @@ ("popup-el" . "866a091b83369873b4d1c5d62a590fbb0a150bd0") ("posframe" . "3257a52e3599bc1d5c9a4b646d36d7a49b0dd025") ("powerline" . "cfba2aa9cfa190e7720900f01a946e1e78aac7e2") - ("prescient.el" . "4a0f5405798cfcb98ea005078ef2e2d490e922c4") ("prettier-emacs" . "e9b73e81d3e1642aec682195f127a42dfb0b5774") ("projectile" . "155fdb44176347c9599357c7935993033260a930") ("queue" . "130c2d656cd5d7376552272fab9e50a7c37d0c4a") @@ -163,7 +163,6 @@ ("sass-mode" . "247a0d4b509f10b28e4687cd8763492bca03599b") ("scss-mode" . "cf58dbec5394280503eb5502938f3b5445d1b53d") ("seeing-is-believing" . "fbbe246c0fda87bb26227bb826eebadb418a220f") - ("selectrum" . "a19bbe94de492bf504399c093cfc5695eb630fa8") ("shell-pop-el" . "4b4394037940a890a313d715d203d9ead2d156a6") ("shrink-path.el" . "c14882c8599aec79a6e8ef2d06454254bb3e1e41") ("smart-shift" . "a26ab2b240137e62ec4bce1698ed9c5f7b6d13ae") @@ -187,6 +186,7 @@ ("undohist" . "56c6f58873f8ebb743e4dc5aff143744720375bd") ("use-package" . "a7422fb8ab1baee19adb2717b5b47b9c3812a84c") ("uuidgen-el" . "b50e6fef2de4199a8f207b46588c2cb3890ddd85") + ("vertico" . "13d1ca5ff3fae3009adb0c62bc7f166e58d595b5") ("vue-html-mode" . "1514939804bad558584feeb6298b38d22eadf64e") ("vue-mode" . "031edd1f97db6e7d8d6c295c0e6d58dd128b9e71") ("web-beautify" . "e1b45321d8c11b404b12c8e55afe55eaa7c84ee9")