Skip to content

Commit 95f7c90

Browse files
[inspect] Add support for :table view-mode
1 parent 5e81c0f commit 95f7c90

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/cider/nrepl/middleware/inspect.clj

+4-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,10 @@
7777
(inspector-response msg (swap-inspector! msg #(inspect/refresh % overrides)))))
7878

7979
(defn- toggle-view-mode [{:keys [view-mode] :as inspector}]
80-
(let [toggle-order {:normal :object, :object :normal}
80+
;; The order in which view modes are cycled depends on the inspected object.
81+
(let [toggle-order (if (inspect/supports-table-view-mode? inspector)
82+
{:normal :table, :table :object, :object :normal}
83+
{:normal :object, :object :normal})
8184
next-view-mode (toggle-order view-mode :normal)]
8285
(inspect/set-view-mode inspector next-view-mode)))
8386

test/clj/cider/nrepl/middleware/inspect_test.clj

+18
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,15 @@
630630
" " [:value "_rest" number?] " = " [:value "(2 3)" number?]
631631
[:newline]])
632632

633+
(def table-mode-prefix
634+
["--- Contents:" [:newline]
635+
[:newline]
636+
" | " [:value "#" pos?] " | " [:value ":a" pos?] " | " [:newline]
637+
" |----+----|" [:newline]
638+
" | " [:value "0" pos?] " | " [:value "1" pos?] " | " [:newline]
639+
" | " [:value "1" pos?] " | " [:value "1" pos?] " | " [:newline]
640+
" | " [:value "2" pos?] " | " [:value "1" pos?] " | " [:newline]])
641+
633642
(deftest object-view-mode-integration-test
634643
(testing "view-mode can be toggled with inspect-toggle-view-mode op"
635644
(session/message {:op "inspect-clear"})
@@ -673,6 +682,15 @@
673682
:code "(range 100)"
674683
:display-analytics-hint "true"})))))
675684

685+
(deftest table-view-mode-integration-test
686+
(testing "table view-mode is supported for lists of maps"
687+
(session/message {:op "inspect-clear"})
688+
(session/message {:op "eval"
689+
:inspect "true"
690+
:code "(repeat 20 {:a 1})"})
691+
(is+ (matchers/prefix table-mode-prefix)
692+
(value-skip-header (session/message {:op "inspect-toggle-view-mode"})))))
693+
676694
(deftest print-length-independence-test
677695
(testing "*print-length* doesn't break rendering of long collections"
678696
(is (re-find #"showing page: \d+ of \d+"

0 commit comments

Comments
 (0)