From a47351c58f6242f235ee1279928e906ad4339aab Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 25 Jul 2019 12:56:34 +0200 Subject: [PATCH] lang/emacs-lisp: add test localleader keys for buttercup --- modules/lang/emacs-lisp/autoload.el | 13 +++++++++++++ modules/lang/emacs-lisp/config.el | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index d1d1846ed..df200bb5a 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -101,6 +101,19 @@ if it's callable, `apropos' otherwise." (bury-buffer buf) buf))))) +;;;###autoload +(defun +emacs-lisp/buttercup-run-file () + "Run all buttercup tests in the focused buffer." + (interactive) + (let ((load-path (append (list (doom-path (dir!) "..") + (or (doom-project-root) + default-directory)) + load-path))) + (save-selected-window + (eval-buffer) + (buttercup-run)) + (message "File executed successfully"))) + ;; ;;; Hooks diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 4882ce31a..5a416df07 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -127,7 +127,21 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.") (use-package! buttercup :defer t :minor ("/test[/-].+\\.el$" . buttercup-minor-mode) - :config (set-yas-minor-mode! 'buttercup-minor-mode)) + :preface + ;; buttercup.el doesn't define a keymap for `buttercup-minor-mode', as we have + ;; to fool its internal `define-minor-mode' call into thinking one exists, so + ;; it will associate it with the mode. + (defvar buttercup-minor-mode-map (make-sparse-keymap)) + :config + (set-yas-minor-mode! 'buttercup-minor-mode) + (when (featurep 'evil) + (add-hook 'buttercup-minor-mode-hook #'evil-normalize-keymaps)) + (map! :map buttercup-minor-mode-map + :localleader + :prefix "t" + "t" #'+emacs-lisp/buttercup-run-file + "a" #'buttercup-run-discover + "s" #'buttercup-run-at-point)) ;;