From d113b781922a6407f8f28227ed355077daaae498 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Sat, 21 Mar 2015 23:51:04 -0400 Subject: [PATCH] Add helm lazy-loading support for describe function --- spacemacs/keybindings.el | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/spacemacs/keybindings.el b/spacemacs/keybindings.el index 9034b4349..d7a4dbcbc 100644 --- a/spacemacs/keybindings.el +++ b/spacemacs/keybindings.el @@ -61,14 +61,24 @@ ;; Cycling settings ----------------------------------------------------------- (evil-leader/set-key "Tn" 'spacemacs/cycle-spacemacs-theme) ;; describe functions --------------------------------------------------------- -(evil-leader/set-key - "hdc" 'describe-char - "hdf" 'describe-function - "hdk" 'describe-key - "hdm" 'describe-mode - "hdp" 'describe-package - "hdt" 'describe-theme - "hdv" 'describe-variable) +(defmacro spacemacs||describe-set-key (keys func) + "Define a key bindings for FUNC using KEYS. +Ensure that helm is required before calling FUNC." + (let ((func-name (intern (format "spacemacs/%s" (symbol-name func))))) + `(progn + (defun ,func-name () + ,(format "Wrapper for %s" (symbol-name func)) + (interactive) + (require 'helm) + (call-interactively ',func)) + (evil-leader/set-key ,keys ',func-name)))) +(spacemacs||describe-set-key "hdc" describe-char) +(spacemacs||describe-set-key "hdf" describe-function) +(spacemacs||describe-set-key "hdk" describe-key) +(spacemacs||describe-set-key "hdm" describe-mode) +(spacemacs||describe-set-key "hdp" describe-package) +(spacemacs||describe-set-key "hdt" describe-theme) +(spacemacs||describe-set-key "hdv" describe-variable) ;; errors --------------------------------------------------------------------- (evil-leader/set-key "en" 'spacemacs/next-error