branch: master commit 860858de429775c17c74537805dbbc7906f8f994 Merge: fd3fa39 2c237cc Author: Noam Postavsky <github.10.npost...@spamgourmet.com> Commit: Noam Postavsky <github.10.npost...@spamgourmet.com>
Merge pull request #436 from npostavs/autodoc-1,2 Fix points 1 and 2 of #434 --- doc/yas-doc-helper.el | 9 ++++++--- yasnippet.el | 34 ++++++++++++++++++---------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/doc/yas-doc-helper.el b/doc/yas-doc-helper.el index 67e5986..c940b20 100755 --- a/doc/yas-doc-helper.el +++ b/doc/yas-doc-helper.el @@ -46,10 +46,13 @@ (concat-lines ":PROPERTIES:" (format ":CUSTOM_ID: %s" symbol) ":END:")) - (body (or (cond ((boundp symbol) + (body (or (cond ((fboundp symbol) + (let ((doc-synth (car-safe (get symbol 'function-documentation)))) + (if (functionp doc-synth) + (funcall doc-synth nil) + (documentation symbol t)))) + ((boundp symbol) (documentation-property symbol 'variable-documentation t)) - ((fboundp symbol) - (documentation-property symbol 'function-documentation t)) (t (format "*WARNING*: no symbol named =%s=" symbol))) (format "*WARNING*: no doc for symbol =%s=" symbol))) diff --git a/yasnippet.el b/yasnippet.el index eb7afc6..6c95978 100644 --- a/yasnippet.el +++ b/yasnippet.el @@ -4298,31 +4298,33 @@ When multiple expressions are found, only the last one counts." ;; depending on the context. ;; (put 'yas-expand 'function-documentation - '(yas--expand-from-trigger-key-doc)) -(defun yas--expand-from-trigger-key-doc () + '(yas--expand-from-trigger-key-doc t)) +(defun yas--expand-from-trigger-key-doc (context) "A doc synthesizer for `yas--expand-from-trigger-key-doc'." - (let ((fallback-description - (cond ((eq yas-fallback-behavior 'call-other-command) - (let* ((fallback (yas--keybinding-beyond-yasnippet))) - (or (and fallback - (format " call command `%s'." (pp-to-string fallback))) - " do nothing (`yas-expand' doesn't shadow\nanything)"))) - ((eq yas-fallback-behavior 'return-nil) - ", do nothing.") - (t - ", defer to `yas-fallback-behaviour' (which see)")))) + (let* ((yas-fallback-behavior (and context yas-fallback-behavior)) + (fallback-description + (cond ((eq yas-fallback-behavior 'call-other-command) + (let* ((fallback (yas--keybinding-beyond-yasnippet))) + (or (and fallback + (format "call command `%s'." + (pp-to-string fallback))) + "do nothing (`yas-expand' doesn't shadow\nanything)."))) + ((eq yas-fallback-behavior 'return-nil) + "do nothing.") + (t "defer to `yas-fallback-behaviour' (which see).")))) (concat "Expand a snippet before point. If no snippet -expansion is possible," +expansion is possible, " fallback-description "\n\nOptional argument FIELD is for non-interactive use and is an object satisfying `yas--field-p' to restrict the expansion to."))) -(put 'yas-expand-from-keymap 'function-documentation '(yas--expand-from-keymap-doc)) -(defun yas--expand-from-keymap-doc () +(put 'yas-expand-from-keymap 'function-documentation + '(yas--expand-from-keymap-doc t)) +(defun yas--expand-from-keymap-doc (context) "A doc synthesizer for `yas--expand-from-keymap-doc'." (add-hook 'temp-buffer-show-hook 'yas--snippet-description-finish-runonce) (concat "Expand/run snippets from keymaps, possibly falling back to original binding.\n" - (when (eq this-command 'describe-key) + (when (and context (eq this-command 'describe-key)) (let* ((vec (this-single-command-keys)) (templates (mapcan #'(lambda (table) (yas--fetch table vec))