From eece13f2ca39aaf58baed7593d56baabdb2765a0 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 14 Jan 2018 23:37:48 -0500 Subject: [PATCH] Lazy-load evil-easymotion properly via keybinds #335 The package wasn't set up properly to autoload until evil-snipe did, making its functionality inaccessible without an explicit (require 'evil-easymotion) --- modules/feature/evil/config.el | 3 +-- modules/private/default/config.el | 36 +++++++++++++++++-------------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/modules/feature/evil/config.el b/modules/feature/evil/config.el index 4f1789b0a..50f7aa972 100644 --- a/modules/feature/evil/config.el +++ b/modules/feature/evil/config.el @@ -156,8 +156,7 @@ (def-package! evil-easymotion - :after evil-snipe - :commands evilem-create) + :commands (evilem-create evilem-default-keybindings)) (def-package! evil-embrace diff --git a/modules/private/default/config.el b/modules/private/default/config.el index 4379a6955..ad2454c00 100644 --- a/modules/private/default/config.el +++ b/modules/private/default/config.el @@ -61,20 +61,24 @@ (do-repeat! evil-visualstar/begin-search-backward evil-ex-search-previous evil-ex-search-next)) - (after! evil-easymotion - (let ((prefix (concat doom-leader-key " /"))) - ;; NOTE `evilem-default-keybinds' unsets all other keys on the prefix (in - ;; motion state) + ;; lazy-load `evil-easymotion' + (map! :m "gs" #'+default/easymotion) + (defun +default/easymotion () + (interactive) + (let ((prefix (this-command-keys))) (evilem-default-keybindings prefix) - (evilem-define (kbd (concat prefix " n")) #'evil-ex-search-next) - (evilem-define (kbd (concat prefix " N")) #'evil-ex-search-previous) - (evilem-define (kbd (concat prefix " s")) #'evil-snipe-repeat - :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) - :bind ((evil-snipe-scope 'buffer) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight))) - (evilem-define (kbd (concat prefix " S")) #'evil-snipe-repeat-reverse - :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) - :bind ((evil-snipe-scope 'buffer) - (evil-snipe-enable-highlight) - (evil-snipe-enable-incremental-highlight)))))) + (map! :map evilem-map + "n" (evilem-create #'evil-ex-search-next) + "N" (evilem-create #'evil-ex-search-previous) + "s" (evilem-create #'evil-snipe-repeat + :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) + :bind ((evil-snipe-scope 'buffer) + (evil-snipe-enable-highlight) + (evil-snipe-enable-incremental-highlight))) + "S" (evilem-create #'evil-snipe-repeat-reverse + :pre-hook (save-excursion (call-interactively #'evil-snipe-s)) + :bind ((evil-snipe-scope 'buffer) + (evil-snipe-enable-highlight) + (evil-snipe-enable-incremental-highlight)))) + (set-transient-map evilem-map) + (which-key-reload-key-sequence prefix))))