[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/inspector 7574ca3ff9 51/93: Slice sequences
From: |
ELPA Syncer |
Subject: |
[elpa] externals/inspector 7574ca3ff9 51/93: Slice sequences |
Date: |
Tue, 24 May 2022 18:57:59 -0400 (EDT) |
branch: externals/inspector
commit 7574ca3ff92a3164b4e93bf6bff69d04b5855bbc
Author: Mariano Montone <marianomontone@gmail.com>
Commit: Mariano Montone <marianomontone@gmail.com>
Slice sequences
---
inspector.el | 40 ++++++++++++++++++++++++++++++++++------
1 file changed, 34 insertions(+), 6 deletions(-)
diff --git a/inspector.el b/inspector.el
index 0e0ebef2c3..37e32d7d68 100644
--- a/inspector.el
+++ b/inspector.el
@@ -119,6 +119,11 @@
:type 'boolean
:group 'inspector)
+(defcustom inspector-slice-size 100
+ "Size of sequence slices in inspector."
+ :type 'integer
+ :group 'inspector)
+
;;-------- Inspector code -------------------
(defvar-local inspector-history nil
@@ -162,6 +167,11 @@ If LABEL has a value, then it is used as button label.
Otherwise, button label
(inspector-inspect object t))
'follow-link t))
+(defun inspector--do-with-slicer (slicer function)
+ (let ((slice (funcall slicer)))
+ (when slice
+ (funcall function slice (lambda () (inspector--do-with-slicer slicer
function))))))
+
(cl-defgeneric inspect-object (object)
"Main generic interface for filling inspector buffers for the different
types of OBJECT.")
@@ -282,12 +292,30 @@ If LABEL has a value, then it is used as button label.
Otherwise, button label
(newline)))
((inspector--proper-list-p cons)
(inspector--insert-title "Proper list")
- (let ((i 0))
- (dolist (elem cons)
- (insert (format "%d: " i))
- (inspector--insert-inspect-button elem)
- (newline)
- (cl-incf i))))
+ (let ((i 0)
+ (j 0))
+ (inspector--do-with-slicer
+ (lambda ()
+ (when (< i (length cons))
+ (subseq cons i (min (incf i inspector-slice-size)
+ (length cons)))))
+ (lambda (slice cont)
+ (dolist (elem slice)
+ (insert (format "%d: " j))
+ (incf j)
+ (inspector--insert-inspect-button elem)
+ (newline))
+ (insert-button "[More]"
+ 'action (let ((pos (point)))
+ (lambda (btn)
+ (ignore btn)
+ (setq buffer-read-only nil)
+ (goto-char pos)
+ (delete-char (length "[More]"))
+ (funcall cont)
+ (setq buffer-read-only nil)
+ ))
+ 'follow-link t)))))
(t ;; It is a cons cell
(inspector--insert-title "Cons cell")
(insert "CAR: ")
- [elpa] externals/inspector a9e41424fa 66/93: Update README.md, (continued)
- [elpa] externals/inspector a9e41424fa 66/93: Update README.md, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 4b193ba6d0 69/93: Don't add [more] button when not needed, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 2af90a4c82 83/93: tests: fixes, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 57105aef34 72/93: Update README.md, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 023ae9ca51 92/93: Use value face instead of button face, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector d88d248eef 19/93: Presentation improvements, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 57b46a3079 38/93: Bug fix, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 22869bffb4 47/93: Indentation, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector f534e87d1d 54/93: Slice tests, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 5f7ab9bfb7 06/93: Housekeeping, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 7574ca3ff9 51/93: Slice sequences,
ELPA Syncer <=
- [elpa] externals/inspector 610d67b358 59/93: Test on property lists, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 970fa60851 68/93: Better horizontal line for title underline, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 17f6d1dfaf 71/93: Aesthetic adjustments, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 0dc8dd946b 77/93: Render built-in functions, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector ee6d2ea01b 80/93: More tests, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector d60552c6d2 76/93: Some more tests, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector ce05c412ba 81/93: More tests, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 40b9031bd8 84/93: Delete .github, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector e1395930a6 86/93: Proper faces for inspector buttons, ELPA Syncer, 2022/05/24
- [elpa] externals/inspector 0c92102cfd 87/93: Inherit from fundamental-mode, ELPA Syncer, 2022/05/24