Skip to content

Commit 2f3c9f5

Browse files
Dan Suttonbbatsov
authored andcommitted
Update UI for stacktrace filters for show/hide
Rather than putting everything in the show category, move all of those into the hide category and put the "positive" filters on the top line. Modify the fuction to return the correct face for filters.
1 parent 1e63608 commit 2f3c9f5

File tree

1 file changed

+27
-22
lines changed

1 file changed

+27
-22
lines changed

cider-stacktrace.el

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -117,24 +117,18 @@ The error types are represented as strings."
117117
:group 'cider-stacktrace
118118
:package-version '(cider . "0.7.0"))
119119

120-
(defface cider-stacktrace-filter-shown-face
120+
(defface cider-stacktrace-filter-active-face
121121
'((t (:inherit button :underline t :weight normal)))
122122
"Face for filter buttons representing frames currently visible"
123123
:group 'cider-stacktrace
124124
:package-version '(cider . "0.6.0"))
125125

126-
(defface cider-stacktrace-filter-hidden-face
126+
(defface cider-stacktrace-filter-inactive-face
127127
'((t (:inherit button :underline nil :weight normal)))
128128
"Face for filter buttons representing frames currently filtered out"
129129
:group 'cider-stacktrace
130130
:package-version '(cider . "0.6.0"))
131131

132-
(defface cider-stacktrace-filter-positive-face
133-
'((t (:inherit button :underline t :weight normal)))
134-
"Face for filter buttons representing frames currently filtered out"
135-
:group 'cider-stacktrace
136-
:package-version '(cider . "0.15.0"))
137-
138132
(defface cider-stacktrace-face
139133
'((t (:inherit default)))
140134
"Face for stack frame text"
@@ -252,11 +246,18 @@ The error types are represented as strings."
252246

253247
(defun cider-stacktrace--face-for-filter (filter neg-filters pos-filters)
254248
"Return whether we should mark the filter is active or not."
255-
(cond ((member filter neg-filters) 'cider-stacktrace-filter-hidden-face)
256-
((member filter pos-filters) 'cider-stacktrace-filter-positive-face)
257-
((member filter '(project)) 'cider-stacktrace-filter-hidden-face)
258-
((null filter) 'cider-stacktrace-filter-hidden-face)
259-
(t 'cider-stacktrace-filter-shown-face)))
249+
(cond ((member filter '(clj java repl tooling dup)) ; negative filter
250+
(if (member filter neg-filters)
251+
'cider-stacktrace-filter-active-face
252+
'cider-stacktrace-filter-inactive-face))
253+
((member filter '(project)) ; positive filter
254+
(if (member filter pos-filters)
255+
'cider-stacktrace-filter-active-face
256+
'cider-stacktrace-filter-inactive-face))
257+
((null filter) ; "all" filter
258+
(if (null neg-filters)
259+
'cider-stacktrace-filter-active-face
260+
'cider-stacktrace-filter-inactive-face))))
260261

261262
(defun cider-stacktrace-indicate-filters (filters pos-filters)
262263
"Update enabled state of filter buttons.
@@ -594,17 +595,20 @@ prompt and whether to use a new window. Similar to `cider-find-var'."
594595
(setq-local fill-prefix indent)
595596
(fill-region beg (point)))))
596597

597-
(defun cider-stacktrace-render-filters (buffer filters)
598+
(defun cider-stacktrace-render-filters (buffer special-filters filters)
598599
"Emit into BUFFER toggle buttons for each of the FILTERS."
599600
(with-current-buffer buffer
600601
(insert " Show: ")
601-
(insert-text-button "Project-Only"
602-
'filter 'project
603-
'follow-link t
604-
'action 'cider-stacktrace-show-only-project
605-
'help-echo "Project frames only")
606-
(insert " ") ;; if you put the space after project-only the button
607-
;; highlighting spills into the next button
602+
(dolist (filter special-filters)
603+
(insert-text-button (car filter)
604+
'filter (cadr filter)
605+
'follow-link t
606+
'action (or (nth 3 filter) 'cider-stacktrace-filter)
607+
'help-echo (format "Toggle %s stack frames"
608+
(car filter)))
609+
(insert " "))
610+
(insert "\n")
611+
(insert " Hide: ")
608612
(dolist (filter filters)
609613
(insert-text-button (car filter)
610614
'filter (cadr filter)
@@ -768,8 +772,9 @@ through the `cider-stacktrace-suppressed-errors' variable."
768772
;; Stacktrace filters
769773
(cider-stacktrace-render-filters
770774
buffer
775+
`(("Project-Only" project cider-stacktrace-show-only-project) ("All" ,nil))
771776
`(("Clojure" clj) ("Java" java) ("REPL" repl)
772-
("Tooling" tooling) ("Duplicates" dup) ("All" ,nil)))
777+
("Tooling" tooling) ("Duplicates" dup)))
773778
(insert "\n")
774779
;; Option to suppress internal/middleware errors
775780
(when error-types

0 commit comments

Comments
 (0)