summaryrefslogtreecommitdiff
path: root/cider-stacktrace.el
diff options
context:
space:
mode:
authorJeff Valk <jv@jeffvalk.com>2014-05-16 11:57:40 -0400
committerJeff Valk <jv@jeffvalk.com>2014-05-16 14:33:26 -0400
commit2a712c3b10c565c4500d8a07a407ab19b15e8d58 (patch)
tree3125c70ba671132692c854992368f1a2821131ac /cider-stacktrace.el
parentb0c46bee75b9a11e5d6c1196f28157ead0b22506 (diff)
Enable toggling of the 'all' filter on stacktraces.
Diffstat (limited to 'cider-stacktrace.el')
-rw-r--r--cider-stacktrace.el18
1 files changed, 12 insertions, 6 deletions
diff --git a/cider-stacktrace.el b/cider-stacktrace.el
index 43c84dbf..befa63d5 100644
--- a/cider-stacktrace.el
+++ b/cider-stacktrace.el
@@ -101,7 +101,7 @@ If nil, messages will not be wrapped. If truthy but non-numeric,
(define-key map "r" 'cider-stacktrace-toggle-repl)
(define-key map "t" 'cider-stacktrace-toggle-tooling)
(define-key map "d" 'cider-stacktrace-toggle-duplicates)
- (define-key map "a" 'cider-stacktrace-show-all)
+ (define-key map "a" 'cider-stacktrace-toggle-all)
map))
(easy-menu-define cider-stacktrace-mode-menu cider-stacktrace-mode-map
@@ -112,7 +112,7 @@ If nil, messages will not be wrapped. If truthy but non-numeric,
["Show/hide REPL frames" cider-stacktrace-toggle-repl]
["Show/hide tooling frames" cider-stacktrace-toggle-tooling]
["Show/hide duplicate frames" cider-stacktrace-toggle-duplicates]
- ["Show/hide all frames" cider-stacktrace-show-all]))
+ ["Show/hide all frames" cider-stacktrace-toggle-all]))
(define-derived-mode cider-stacktrace-mode fundamental-mode "Stacktrace"
"Major mode for filtering and navigating CIDER stacktraces
@@ -121,6 +121,7 @@ If nil, messages will not be wrapped. If truthy but non-numeric,
(setq buffer-read-only t)
(setq-local truncate-lines t)
(setq-local electric-indent-functions (list (lambda (x) 'no-indent)))
+ (setq-local cider-stacktrace-prior-filters nil)
(setq-local cider-stacktrace-hidden-frame-count 0)
(setq-local cider-stacktrace-filters cider-stacktrace-default-filters))
@@ -177,11 +178,16 @@ Update `cider-stacktrace-hidden-frame-count' and indicate filters applied."
;; Interactive functions
-(defun cider-stacktrace-show-all ()
- "Reset `cider-stacktrace-filters', and apply filters."
+(defun cider-stacktrace-toggle-all ()
+ "Reset `cider-stacktrace-filters' if present; otherwise restore prior filters."
(interactive)
+ (when cider-stacktrace-filters
+ (setq-local cider-stacktrace-prior-filters
+ cider-stacktrace-filters))
(cider-stacktrace-apply-filters
- (setq cider-stacktrace-filters nil)))
+ (setq cider-stacktrace-filters
+ (unless cider-stacktrace-filters ; when current filters are nil,
+ cider-stacktrace-prior-filters)))) ; reenable prior filter set
(defun cider-stacktrace-toggle (flag)
"Update `cider-stacktrace-filters' to add or remove FLAG, and apply filters."
@@ -225,7 +231,7 @@ Update `cider-stacktrace-hidden-frame-count' and indicate filters applied."
(let ((flag (button-get button 'filter)))
(if flag
(cider-stacktrace-toggle flag)
- (cider-stacktrace-show-all)))
+ (cider-stacktrace-toggle-all)))
(sit-for 5)))
(defun cider-stacktrace-navigate (button)