]> git.eshelyaron.com Git - emacs.git/commitdiff
Attempt to make defclass documentation more legible
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 24 Jun 2021 18:24:43 +0000 (20:24 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 24 Jun 2021 18:24:43 +0000 (20:24 +0200)
* lisp/emacs-lisp/cl-extra.el (cl--print-table): Attempt to make
defclass documentation more readable (bug#30998).
(cl--describe-class-slots): Ditto.

lisp/emacs-lisp/cl-extra.el
lisp/emacs-lisp/subr-x.el

index 13036544825e88dea2d1d8a052b1bad2dbd09c97..c30349de6bba13fdbef8260f501c0e084f162ab4 100644 (file)
@@ -847,7 +847,7 @@ PROPLIST is a list of the sort returned by `symbol-plist'.
               "\n")))
    "\n"))
 
-(defun cl--print-table (header rows)
+(defun cl--print-table (header rows &optional last-slot-on-next-line)
   ;; FIXME: Isn't this functionality already implemented elsewhere?
   (let ((cols (apply #'vector (mapcar #'string-width header)))
         (col-space 2))
@@ -877,7 +877,11 @@ PROPLIST is a list of the sort returned by `symbol-plist'.
                                header))
                 "\n")
         (dolist (row rows)
-          (insert (apply #'format format row) "\n"))))))
+          (insert (apply #'format format row) "\n")
+          (when last-slot-on-next-line
+            (dolist (line (string-lines (car (last row))))
+              (insert "    " line "\n"))
+            (insert "\n")))))))
 
 (defun cl--describe-class-slots (class)
   "Print help description for the slots in CLASS.
@@ -909,8 +913,7 @@ Outputs to the current buffer."
                          (setq has-doc t)
                          (substitute-command-keys doc)))))
              slots)))
-      (cl--print-table `("Name" "Type" "Default" . ,(if has-doc '("Doc")))
-                       slots-strings))
+      (cl--print-table `("Name" "Type" "Default") slots-strings has-doc))
     (insert "\n")
     (when (> (length cslots) 0)
       (insert (propertize "\nClass Allocated Slots:\n\n" 'face 'bold))
index 1c13c398dde7e877663d7c90ebd14f9d2ff75c5f..468d124c0e292823a3d4bffa92ae29110ce4791d 100644 (file)
@@ -317,6 +317,7 @@ than this function."
      (end (substring string (- (length string) length)))
      (t (substring string 0 length)))))
 
+;;;###autoload
 (defun string-lines (string &optional omit-nulls)
   "Split STRING into a list of lines.
 If OMIT-NULLS, empty lines will be removed from the results."