diff options
author | Bozhidar Batsov <bozhidar@tradeo.com> | 2014-11-14 01:08:24 +0200 |
---|---|---|
committer | Bozhidar Batsov <bozhidar@tradeo.com> | 2014-11-14 01:08:24 +0200 |
commit | c31a8626fdc4f2755a1f43d3ada05aaa628b4a71 (patch) | |
tree | 7c9509171381f77457b5cb7ab7d727aa0f9074de | |
parent | dbdc1c3b407d17d81d07c18e519e546d1e2d875a (diff) |
Implement ns tracing
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | cider-interaction.el | 35 | ||||
-rw-r--r-- | cider-mode.el | 3 | ||||
-rw-r--r-- | cider-repl.el | 3 | ||||
-rw-r--r-- | doc/cider-refcard.tex | 3 |
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} |