summaryrefslogtreecommitdiff
path: root/cider-interaction.el
diff options
context:
space:
mode:
authorBozhidar Batsov <bozhidar@tradeo.com>2014-08-15 17:41:03 +0300
committerBozhidar Batsov <bozhidar@tradeo.com>2014-08-15 17:41:03 +0300
commit7bb9b5f8aaa059757528f6e62152b4ab75ffbba9 (patch)
tree65764fbfc858adf61872db7bafda89c5003c40ce /cider-interaction.el
parent4426647b61608dce1790ec28ebb08182a53d350e (diff)
[#631] Workaround for missing var metadata
Interactively evaluated var definitions lack metadata, so we can't easily navigate to them. To workaround this we look for definitions in open Clojure buffers.
Diffstat (limited to 'cider-interaction.el')
-rw-r--r--cider-interaction.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/cider-interaction.el b/cider-interaction.el
index 0c12910a..69666e9d 100644
--- a/cider-interaction.el
+++ b/cider-interaction.el
@@ -653,7 +653,13 @@ When called interactively, this operates on point, or falls back to a prompt."
(line (or line (cadr (assoc "line" info))))
(buffer (cider-find-file file)))
(cider-jump-to buffer (cons line nil))
- (message "No source available for %s" var))
+ ;; var was created interactively and has no file info
+ (-if-let* ((ns (cadr (assoc "ns" info)))
+ (name (cadr (assoc "name" info)))
+ (buffer (cider-find-buffer ns))
+ (pos (cider-locate-def buffer name)))
+ (cider-jump-to buffer pos)
+ (message "No source available for %s" var)))
(message "Symbol %s not resolved" var)))
(define-obsolete-function-alias 'cider-jump 'cider-jump-to-var "0.7.0")