[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] fix/bug-31311-pcase-doc 4cf4faa 5/8: (docstring) ensure ba
From: |
Thien-Thi Nguyen |
Subject: |
[Emacs-diffs] fix/bug-31311-pcase-doc 4cf4faa 5/8: (docstring) ensure backquote is output first |
Date: |
Wed, 16 May 2018 14:49:56 -0400 (EDT) |
branch: fix/bug-31311-pcase-doc
commit 4cf4faa88813dd2d8fbe8ea9252d1bdeaead1b1e
Author: Thien-Thi Nguyen <address@hidden>
Commit: Thien-Thi Nguyen <address@hidden>
(docstring) ensure backquote is output first
* lisp/emacs-lisp/pcase.el (pcase--make-docstring): ...here.
---
lisp/emacs-lisp/pcase.el | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 3ee6341..ffc1f52 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -184,18 +184,30 @@ Emacs Lisp manual for more information and examples."
(require 'help-fns)
(with-temp-buffer
(insert (or (cdr ud) main))
- ;; Presentation Note: For conceptual continuity, it
- ;; would be nice to guarantee that backquote comes first.
- ;; The order of other extensions is unimportant, however.
- (mapatoms
- (lambda (symbol)
- (let ((me (get symbol 'pcase-macroexpander)))
- (when me
- (insert "\n\n-- ")
- (let* ((doc (documentation me 'raw)))
- (setq doc (help-fns--signature symbol doc me
- (indirect-function me) nil))
- (insert "\n" (or doc "Not documented.")))))))
+ ;; Presentation Note: For conceptual continuity, we guarantee
+ ;; that backquote doc immediately follows main pcase doc.
+ ;; (The order of the other extensions is unimportant.)
+ (let (more)
+ ;; Collect all the extensions.
+ (mapatoms (lambda (symbol)
+ (let ((me (get symbol 'pcase-macroexpander)))
+ (when me
+ (push (cons symbol me)
+ more)))))
+ ;; Ensure backquote is first.
+ (let ((x (assq '\` more)))
+ (setq more (cons x (delq x more))))
+ ;; Do the output.
+ (while more
+ (let* ((pair (pop more))
+ (symbol (car pair))
+ (me (cdr pair))
+ (doc (documentation me 'raw)))
+ (insert "\n\n-- ")
+ (setq doc (help-fns--signature symbol doc me
+ (indirect-function me)
+ nil))
+ (insert "\n" (or doc "Not documented.")))))
(let ((combined-doc (buffer-string)))
(if ud (help-add-fundoc-usage combined-doc (car ud)) combined-doc)))))
- [Emacs-diffs] fix/bug-31311-pcase-doc updated (2db5695 -> 707c81f), Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc bdbe79a 1/8: minor clarifications, Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc 0f3563b 4/8: use @code instead of `docstring-style' quoting, Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc 4cf4faa 5/8: (docstring) ensure backquote is output first,
Thien-Thi Nguyen <=
- [Emacs-diffs] fix/bug-31311-pcase-doc d2a0b3b 2/8: refine side-effect example, Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc ba2e20e 3/8: say address@hidden instead of @code{t}, Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc 3f614b6 7/8: rewrite intro, Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc 877cf63 6/8: bifurcate "U-pattern", Thien-Thi Nguyen, 2018/05/16
- [Emacs-diffs] fix/bug-31311-pcase-doc 707c81f 8/8: don't quote "equality test"; use instead "the equality test", Thien-Thi Nguyen, 2018/05/16