From 5decfe83b574a94fe88b2709b3e624084bc3e4b8 Mon Sep 17 00:00:00 2001 From: Jason Dufair Date: Wed, 27 Feb 2019 16:51:27 -0500 Subject: [PATCH] Fix shortcut regression bug - This also documents each shortcut so it doesn't show `??` in the keymap docs --- dashboard-widgets.el | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/dashboard-widgets.el b/dashboard-widgets.el index 4a48bce8..df5b8990 100644 --- a/dashboard-widgets.el +++ b/dashboard-widgets.el @@ -129,15 +129,19 @@ Return entire list if `END' is omitted." &optional no-next-line) "Insert a shortcut SHORTCUT-CHAR for a given SEARCH-LABEL. Optionally, provide NO-NEXT-LINE to move the cursor forward a line." - (eval-after-load 'dashboard - `(define-key dashboard-mode-map ,shortcut-char - (lambda () - (interactive) - (unless (search-forward ,search-label (point-max) t) - (search-backward ,search-label (point-min) t)) - ,@(unless no-next-line - '((forward-line 1))) - (back-to-indentation))))) + `(progn + (eval-when-compile (defvar dashboard-mode-map)) + (let ((sym nil)) + (set 'sym (make-symbol (format "Jump to \"%s\"" ,search-label))) + (fset sym (lambda () + (interactive) + (unless (search-forward ,search-label (point-max) t) + (search-backward ,search-label (point-min) t)) + ,@(unless no-next-line + '((forward-line 1))) + (back-to-indentation))) + (eval-after-load 'dashboard + (define-key dashboard-mode-map ,shortcut-char sym))))) (defun dashboard-append (msg &optional messagebuf) "Append MSG to dashboard buffer.