summaryrefslogtreecommitdiff
path: root/cider-inspector.el
diff options
context:
space:
mode:
authorAlexander Yakushev <alex@bytopia.org>2015-07-17 21:07:25 +0300
committerAlexander Yakushev <alex@bytopia.org>2015-07-18 15:42:35 +0300
commit969063f0ceb1187f5da76cfea7336bf4e20b5f19 (patch)
tree23edb6bf327db61f574d58e44cebbb3a59a6746b /cider-inspector.el
parent13bf8efcb0925bb143d3be2ebb50d338304912eb (diff)
Add pagination of long collections to inspector
Diffstat (limited to 'cider-inspector.el')
-rw-r--r--cider-inspector.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/cider-inspector.el b/cider-inspector.el
index b1867ca1..e61d025f 100644
--- a/cider-inspector.el
+++ b/cider-inspector.el
@@ -46,6 +46,9 @@
(define-key map [mouse-1] #'cider-inspector-operate-on-click)
(define-key map "l" #'cider-inspector-pop)
(define-key map "g" #'cider-inspector-refresh)
+ (define-key map "SPC" #'cider-inspector-next-page)
+ (define-key map "M-SPC" #'cider-inspector-prev-page)
+ (define-key map "s" #'cider-inspector-set-page-size)
(define-key map [tab] #'cider-inspector-next-inspectable-object)
(define-key map "\C-i" #'cider-inspector-next-inspectable-object)
(define-key map [(shift tab)] #'cider-inspector-previous-inspectable-object) ; Emacs translates S-TAB
@@ -124,6 +127,34 @@ Used for all inspector nREPL ops."
"session" (nrepl-current-session))
(cider-inspector-response-handler (current-buffer))))
+(defun cider-inspector-next-page ()
+ "Jump to the next page when inspecting a paginated sequence/map.
+
+Does nothing if already on the last page."
+ (interactive)
+ (nrepl-send-request (list "op" "inspect-next-page"
+ "session" (nrepl-current-session))
+ (cider-inspector-response-handler (current-buffer))))
+
+(defun cider-inspector-prev-page ()
+ "Jump to the previous page when expecting a paginated sequence/map.
+
+Does nothing if already on the first page."
+ (interactive)
+ (nrepl-send-request (list "op" "inspect-prev-page"
+ "session" (nrepl-current-session))
+ (cider-inspector-response-handler (current-buffer))))
+
+(defun cider-inspector-set-page-size (page-size)
+ "Set the page size in pagination mode to the specified value.
+
+Current page will be reset to zero."
+ (interactive "nPage size:")
+ (nrepl-send-request (list "op" "inspect-set-page-size"
+ "session" (nrepl-current-session)
+ "page-size" page-size)
+ (cider-inspector-response-handler (current-buffer))))
+
;; Render Inspector from Structured Values
(defun cider-irender (buffer str)
(with-current-buffer buffer