[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] fix/bug-31311-pcase-doc-squash e6de5b3 1/5: Ensure pcase d
From: |
Thien-Thi Nguyen |
Subject: |
[Emacs-diffs] fix/bug-31311-pcase-doc-squash e6de5b3 1/5: Ensure pcase doc shows `QPAT first among extensions |
Date: |
Sun, 27 May 2018 04:30:32 -0400 (EDT) |
branch: fix/bug-31311-pcase-doc-squash
commit e6de5b3d51558ef861df68bcda2c4e91afe2d9ef
Author: Thien-Thi Nguyen <address@hidden>
Commit: Thien-Thi Nguyen <address@hidden>
Ensure pcase doc shows `QPAT first among extensions
* lisp/emacs-lisp/pcase.el (pcase--make-docstring):
Split extensions display into two phases, collection
and display, separated by a reordering step that
ensures backquote is the first.
---
lisp/emacs-lisp/pcase.el | 33 ++++++++++++++++++++++++---------
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index ce148c9..6e8f08e 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -199,15 +199,30 @@ Emacs Lisp manual for more information and examples."
(require 'help-fns)
(with-temp-buffer
(insert (or (cdr ud) main))
- (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] branch fix/bug-31311-pcase-doc-squash created (now cead47a), Thien-Thi Nguyen, 2018/05/27
- [Emacs-diffs] fix/bug-31311-pcase-doc-squash e6de5b3 1/5: Ensure pcase doc shows `QPAT first among extensions,
Thien-Thi Nguyen <=
- [Emacs-diffs] fix/bug-31311-pcase-doc-squash cead47a 5/5: Mention pcase as a fifth conditional form, Thien-Thi Nguyen, 2018/05/27
- [Emacs-diffs] fix/bug-31311-pcase-doc-squash 7e8227e 2/5: Introduce EXPVAL for pcase, pcase-defmacro docstrings, Thien-Thi Nguyen, 2018/05/27
- [Emacs-diffs] fix/bug-31311-pcase-doc-squash 4d7e54a 3/5: Use EXPVAL in docstrings of patterns defined using pcase-defmacro, Thien-Thi Nguyen, 2018/05/27
- [Emacs-diffs] fix/bug-31311-pcase-doc-squash 3294215 4/5: Overhaul pcase documentation, Thien-Thi Nguyen, 2018/05/27