compleseus: disable ido and respect minibuffer binds evilification setting (#15710)

* compleseus: disable ido-mode when vertico and selectrum are used

ido would inject inself instead of the regular `find-file' but if these are
activated, we actually want the regular `find-file'.

* core: provide minibuffer evilification predicate

Many different layers need to decide whether to evilify their minibuffer maps.
Provide a single function that puts the logic in one place.

* compleseus: only evilify minibuffer binds when desired
This commit is contained in:
Atemu 2022-08-27 10:46:04 +02:00 committed by GitHub
parent 99eb20e13c
commit d6c3482663
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 27 deletions

View File

@ -198,6 +198,12 @@ in `dotspacemacs-themes'.")
(const hybrid) (cons symbol sexp))
'spacemacs-dotspacemacs-init)
(defun spacemacs//support-evilified-buffer-p ()
"Return non-nil if evil navigation should be enabled."
(or (eq dotspacemacs-editing-style 'vim)
(and (eq dotspacemacs-editing-style 'hybrid)
hybrid-style-enable-evilified-state)))
(spacemacs|defc dotspacemacs-startup-banner 'official
"Specify the startup banner. Default value is `official', it displays
the official spacemacs logo. An integer value is the index of text

View File

@ -310,18 +310,22 @@
(defun compleseus/init-selectrum ()
(use-package selectrum
:init
;; Disable ido. We want to use the regular find-file etc.; enhanced by selectrum
(setq ido-mode nil)
(selectrum-mode)
(spacemacs/set-leader-keys
"rl" 'selectrum-repeat
"sl" 'selectrum-repeat)
:config
;; TODO can we just use `minibuffer-mode-map'?
(define-key selectrum-minibuffer-map (kbd "C-j") 'selectrum-next-candidate)
(define-key selectrum-minibuffer-map (kbd "C-r") 'consult-history)
(define-key selectrum-minibuffer-map (kbd "C-k") 'selectrum-previous-candidate)
(define-key selectrum-minibuffer-map (kbd "C-M-k") #'spacemacs/selectrum-previous-candidate-preview)
(define-key selectrum-minibuffer-map (kbd "C-M-j") #'spacemacs/selectrum-next-candidate-preview)
(define-key selectrum-minibuffer-map (kbd "C-SPC") #'spacemacs/embark-preview)))
(when (spacemacs//support-evilified-buffer-p)
(define-key selectrum-minibuffer-map (kbd "C-j") 'selectrum-next-candidate)
(define-key selectrum-minibuffer-map (kbd "C-r") 'consult-history)
(define-key selectrum-minibuffer-map (kbd "C-k") 'selectrum-previous-candidate)
(define-key selectrum-minibuffer-map (kbd "C-M-k") #'spacemacs/selectrum-previous-candidate-preview)
(define-key selectrum-minibuffer-map (kbd "C-M-j") #'spacemacs/selectrum-next-candidate-preview)
(define-key selectrum-minibuffer-map (kbd "C-SPC") #'spacemacs/embark-preview))))
(defun compleseus/init-vertico ()
(use-package vertico
@ -352,18 +356,22 @@
vertico-count 20
vertico-cycle nil)
;; Disable ido. We want to use the regular find-file etc.; enhanced by vertico
(setq ido-mode nil)
(vertico-mode)
:config
(define-key vertico-map (kbd "M-RET") #'vertico-exit-input)
(define-key vertico-map (kbd "C-SPC") #'spacemacs/embark-preview)
(define-key vertico-map (kbd "C-j") #'vertico-next)
(define-key vertico-map (kbd "C-M-j") #'spacemacs/next-candidate-preview)
(define-key vertico-map (kbd "C-S-j") #'vertico-next-group)
(define-key vertico-map (kbd "C-k") #'vertico-previous)
(define-key vertico-map (kbd "C-M-k") #'spacemacs/previous-candidate-preview)
(define-key vertico-map (kbd "C-S-k") #'vertico-previous-group)
(define-key vertico-map (kbd "C-r") #'consult-history)))
(when (spacemacs//support-evilified-buffer-p)
(define-key vertico-map (kbd "M-RET") #'vertico-exit-input)
(define-key vertico-map (kbd "C-SPC") #'spacemacs/embark-preview)
(define-key vertico-map (kbd "C-j") #'vertico-next)
(define-key vertico-map (kbd "C-M-j") #'spacemacs/next-candidate-preview)
(define-key vertico-map (kbd "C-S-j") #'vertico-next-group)
(define-key vertico-map (kbd "C-k") #'vertico-previous)
(define-key vertico-map (kbd "C-M-k") #'spacemacs/previous-candidate-preview)
(define-key vertico-map (kbd "C-S-k") #'vertico-previous-group)
(define-key vertico-map (kbd "C-r") #'consult-history))))
(defun compleseus/init-vertico-quick ()
(use-package vertico-quick
@ -386,8 +394,7 @@
(defun compleseus/init-vertico-directory ()
(use-package vertico-directory
;; More convenient directory navigation commands
:bind (:map vertico-map
("C-h" . vertico-directory-delete-char))
:init (bind-key "C-h" 'vertico-directory-delete-char vertico-map (spacemacs//support-evilified-buffer-p))
;; Tidy shadowed file names
:hook (rfn-eshadow-update-overlay . vertico-directory-tidy)))

View File

@ -72,9 +72,7 @@ Unlike `eval-defun', this does not go to topmost function."
(defun spacemacs//edebug-mode (&rest args)
"Additional processing when `edebug-mode' is activated or deactivated."
(let ((evilified? (or (eq 'vim dotspacemacs-editing-style)
(and (eq 'hybrid dotspacemacs-editing-style)
hybrid-style-enable-evilified-state))))
(let ((evilified? (spacemacs//support-evilified-buffer-p)))
(if (not edebug-mode)
;; disable edebug-mode
(when evilified? (evil-evilified-state-exit))

View File

@ -73,12 +73,6 @@
(let (git-link-open-in-browser)
(call-interactively 'git-link-commit)))
(defun spacemacs//support-evilified-buffer-p ()
"Return non-nil if evil navigation should be enabled."
(or (eq dotspacemacs-editing-style 'vim)
(and (eq dotspacemacs-editing-style 'hybrid)
hybrid-style-enable-evilified-state)))
;; git blame transient state