summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--cider-interaction.el35
-rw-r--r--cider-mode.el3
-rw-r--r--cider-repl.el3
-rw-r--r--doc/cider-refcard.tex3
5 files changed, 36 insertions, 10 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4dafb8e7..9d67c50a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,7 @@ are used to translate filenames from/to the nREPL server (default Cygwin impleme
* Added the ability to jump to a definition from a docview buffer.
* New interactive command `cider-close-nrepl-session`.
* New interactive command `cider-describe-nrepl-session`.
+* New interactive command `cider-toggle-trace-ns` (mapped to <kbd>C-c M-t n</kbd>)
### Changes
@@ -59,6 +60,7 @@ an error message is displayed in the minibuffer.
variable `cider-test-show-report-on-success` controls now, whether to show the
`*cider-test-report*` buffer on passing tests. The default is to not show the
buffer.
+* Renamed `cider-toggle-trace` to `cider-toggle-trace-var` and remapped it to <kbd>C-c M-t v</kbd>.
### Bugs fixed
diff --git a/cider-interaction.el b/cider-interaction.el
index 302a8922..990b4684 100644
--- a/cider-interaction.el
+++ b/cider-interaction.el
@@ -154,7 +154,7 @@ which will use the default REPL connection."
"inspect-start" "inspect-refresh"
"inspect-pop" "inspect-push" "inspect-reset"
"macroexpand" "ns-list" "ns-vars"
- "resource" "stacktrace" "toggle-trace" "undef")
+ "resource" "stacktrace" "toggle-trace-var" "toggle-trace-ns" "undef")
"A list of nREPL ops required by CIDER to function properly.
All of them are provided by CIDER's nREPL middleware(cider-nrepl).")
@@ -1562,31 +1562,52 @@ if there is no symbol at point, or if QUERY is non-nil."
(funcall callback symbol-name)
(cider-completing-read-var prompt (cider-current-ns) callback))))
-(defun cider-sync-request:toggle-trace (symbol)
+(defun cider-sync-request:toggle-trace-var (symbol)
"Return a list of classpath entries."
- (cider-ensure-op-supported "toggle-trace")
+ (cider-ensure-op-supported "toggle-trace-var")
(-> (list "op" "toggle-trace"
"ns" (cider-current-ns)
"sym" symbol)
(nrepl-send-sync-request)))
-(defun cider-toggle-trace (query)
+(defun cider-toggle-trace-var (query)
"Toggle tracing for the given QUERY.
Defaults to the symbol at point. With prefix arg or no symbol at
point, prompts for a var."
(interactive "P")
- (cider-ensure-op-supported "toggle-trace")
+ (cider-ensure-op-supported "toggle-trace-var")
(cider-read-symbol-name
"Toggle trace for var: "
(lambda (sym)
- (let* ((trace-response (cider-sync-request:toggle-trace sym))
+ (let* ((trace-response (cider-sync-request:toggle-trace-var sym))
(var-name (nrepl-dict-get trace-response "var-name"))
(var-status (nrepl-dict-get trace-response "var-status")))
(pcase var-status
- ("not-found" (message "Var %s not found" sym))
+ ("not-found" (message "Var %s not found" sym))
(t (message "Var %s %s" var-name var-status)))))
query))
+(defun cider-sync-request:toggle-trace-ns (ns)
+ "Return a list of classpath entries."
+ (cider-ensure-op-supported "toggle-trace-ns")
+ (-> (list "op" "toggle-trace-ns"
+ "ns" ns)
+ (nrepl-send-sync-request)))
+
+(defun cider-toggle-trace-ns (query)
+ "Toggle ns tracing.
+Defaults to the current ns. With prefix arg QUERY, prompts for a ns."
+ (interactive "P")
+ (cider-ensure-op-supported "toggle-trace-ns")
+ (let ((ns (if query
+ (completing-read "Toggle trace for ns: " (cider-sync-request:ns-list))
+ (cider-current-ns))))
+ (let* ((trace-response (cider-sync-request:toggle-trace-ns ns))
+ (ns-status (nrepl-dict-get trace-response "ns-status")))
+ (pcase ns-status
+ ("not-found" (message "ns %s not found" ns))
+ (t (message "ns %s %s" ns ns-status))))))
+
(defun cider-create-doc-buffer (symbol)
"Populates *cider-doc* with the documentation for SYMBOL."
(-when-let (info (cider-var-info symbol))
diff --git a/cider-mode.el b/cider-mode.el
index e676ccf8..977abca7 100644
--- a/cider-mode.el
+++ b/cider-mode.el
@@ -74,7 +74,8 @@ entirely."
(define-key map (kbd "C-c M-m") 'cider-macroexpand-all)
(define-key map (kbd "C-c M-n") 'cider-repl-set-ns)
(define-key map (kbd "C-c M-i") 'cider-inspect)
- (define-key map (kbd "C-c M-t") 'cider-toggle-trace)
+ (define-key map (kbd "C-c M-t v") 'cider-toggle-trace-var)
+ (define-key map (kbd "C-c M-t n") 'cider-toggle-trace-ns)
(define-key map (kbd "C-c C-z") 'cider-switch-to-repl-buffer)
(define-key map (kbd "C-c M-o") 'cider-find-and-clear-repl-buffer)
(define-key map (kbd "C-c C-k") 'cider-load-buffer)
diff --git a/cider-repl.el b/cider-repl.el
index f9e31c2d..a65e6c9c 100644
--- a/cider-repl.el
+++ b/cider-repl.el
@@ -983,7 +983,8 @@ constructs."
(define-key map (kbd "C-c M-f") 'cider-load-fn-into-repl-buffer)
(define-key map (kbd "C-c C-q") 'cider-quit)
(define-key map (kbd "C-c M-i") 'cider-inspect)
- (define-key map (kbd "C-c M-t") 'cider-toggle-trace)
+ (define-key map (kbd "C-c M-t v") 'cider-toggle-trace-var)
+ (define-key map (kbd "C-c M-t n") 'cider-toggle-trace-ns)
(define-key map (kbd "C-c C-x") 'cider-refresh)
(define-key map (kbd "C-x C-e") 'cider-eval-last-sexp)
(define-key map (kbd "C-c C-r") 'cider-eval-region)
diff --git a/doc/cider-refcard.tex b/doc/cider-refcard.tex
index 29055d14..f4db1458 100644
--- a/doc/cider-refcard.tex
+++ b/doc/cider-refcard.tex
@@ -99,7 +99,8 @@
\key{C-c M-d}{cider-display-current-connection-info}
\key{C-c M-r}{cider-rotate-connection}
\key{C-c M-n}{cider-repl-set-ns}
-\key{C-c M-t}{cider-toggle-trace}
+\key{C-c M-t v}{cider-toggle-trace-var}
+\key{C-c M-t n}{cider-toggle-trace-ns}
\key{C-c C-b}{cider-interrupt}
\key{C-c C-x}{cider-refresh}
\key{C-c C-q}{cider-quit}