emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master eaa3141 059/177: fix docstring extraction for "fancy" docs


From: João Távora
Subject: [elpa] master eaa3141 059/177: fix docstring extraction for "fancy" docs
Date: Sat, 28 Mar 2015 15:40:49 +0000

branch: master
commit eaa3141402832903715b7d478e028d69d9d3ed0f
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    fix docstring extraction for "fancy" docs
    
    The docstrings for yas-expand and yas-expand-from-keymap are generated
    on the fly, depending on how they are called ("context"). Add a context
    argument to the synthesizing functions and pass it nil when extracting
    docstrings for the manual.
---
 doc/yas-doc-helper.el |    5 ++++-
 yasnippet.el          |   34 ++++++++++++++++++----------------
 2 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/doc/yas-doc-helper.el b/doc/yas-doc-helper.el
index e4d2857..f9e0f69 100755
--- a/doc/yas-doc-helper.el
+++ b/doc/yas-doc-helper.el
@@ -49,7 +49,10 @@
            (body (or (cond ((boundp symbol)
                             (documentation-property symbol 
'variable-documentation t))
                            ((fboundp symbol)
-                            (documentation symbol t))
+                            (let ((doc-synth (car-safe (get symbol 
'function-documentation))))
+                              (if (functionp doc-synth)
+                                  (funcall doc-synth nil)
+                                (documentation symbol 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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]