core: resize minibuffer for docstring of micro-states

This commit is contained in:
syl20bnr 2015-11-08 20:58:12 -05:00
parent f7a2f9c2cd
commit 1ac27be88e

View file

@ -94,7 +94,9 @@ used."
(doc (spacemacs/mplist-get props :doc)) (doc (spacemacs/mplist-get props :doc))
(persistent (plist-get props :persistent)) (persistent (plist-get props :persistent))
(disable-leader (plist-get props :disable-evil-leader)) (disable-leader (plist-get props :disable-evil-leader))
(msg-func (if (plist-get props :use-minibuffer) 'message 'corelv-message)) (msg-func (if (plist-get props :use-minibuffer)
'message
'corelv-message))
(exec-binding (plist-get props :execute-binding-on-enter)) (exec-binding (plist-get props :execute-binding-on-enter))
(on-enter (spacemacs/mplist-get props :on-enter)) (on-enter (spacemacs/mplist-get props :on-enter))
(on-exit (spacemacs/mplist-get props :on-exit)) (on-exit (spacemacs/mplist-get props :on-exit))
@ -109,8 +111,9 @@ used."
,@on-enter ,@on-enter
(let ((doc ,@doc)) (let ((doc ,@doc))
(when doc (when doc
(setq max-mini-window-height (1+ (how-many-str "\n" doc)))
(apply ',msg-func (list (spacemacs//micro-state-propertize-doc (apply ',msg-func (list (spacemacs//micro-state-propertize-doc
(format "%S: %s" ',name doc)))))) (format "%S: %s" ',name doc))))))
,(when exec-binding ,(when exec-binding
(spacemacs//micro-state-auto-execute bindings)) (spacemacs//micro-state-auto-execute bindings))
(,(if (version< emacs-version "24.4") (,(if (version< emacs-version "24.4")
@ -153,17 +156,19 @@ used."
(binding-pre (spacemacs/mplist-get binding :pre)) (binding-pre (spacemacs/mplist-get binding :pre))
(binding-post (spacemacs/mplist-get binding :post)) (binding-post (spacemacs/mplist-get binding :post))
(wrapper-name (intern (format "spacemacs//%S-%S-%s" name wrapped key))) (wrapper-name (intern (format "spacemacs//%S-%S-%s" name wrapped key)))
(doc-body `((let ((bdoc ,@binding-doc) (doc-body
(defdoc ,@default-doc)) `((let ((bdoc ,@binding-doc)
(if bdoc (defdoc ,@default-doc))
(apply ',msg-func (if bdoc
(list (spacemacs//micro-state-propertize-doc (apply ',msg-func
(format "%S: %s" ',name bdoc)))) (list (spacemacs//micro-state-propertize-doc
(when (and defdoc (format "%S: %s" ',name bdoc))))
',wrapped (not (plist-get ',binding :exit))) (when (and defdoc
(apply ',msg-func ',wrapped (not (plist-get ',binding :exit)))
(list (spacemacs//micro-state-propertize-doc (setq max-mini-window-height (1+ (how-many-str "\n" defdoc)))
(format "%S: %s" ',name defdoc))))))))) (apply ',msg-func
(list (spacemacs//micro-state-propertize-doc
(format "%S: %s" ',name defdoc)))))))))
(wrapper-func (wrapper-func
(if (and (boundp wrapped) (if (and (boundp wrapped)
(eval `(keymapp ,wrapped))) (eval `(keymapp ,wrapped)))
@ -181,6 +186,7 @@ used."
(setq throwp nil)) (setq throwp nil))
,@binding-post ,@binding-post
(when throwp (throw 'exit nil))) (when throwp (throw 'exit nil)))
(setq max-mini-window-height (1+ (how-many-str "\n" ,@doc-body)))
,@doc-body)))) ,@doc-body))))
(append (list (car binding) (eval wrapper-func)) binding))) (append (list (car binding) (eval wrapper-func)) binding)))