summaryrefslogtreecommitdiff
path: root/cider-repl.el
diff options
context:
space:
mode:
authorVitalie Spinu <spinuvit@gmail.com>2017-08-28 16:07:07 +0200
committerBozhidar Batsov <bozhidar.batsov@gmail.com>2017-09-05 20:37:45 +0300
commit60556831155b5382aef46939270a93f76cf0708a (patch)
treea2f23dbc1759bbca6a86949861c80c64873ef5db /cider-repl.el
parent7a53a92054d12b698790b3ec59af757014522b95 (diff)
Rely on cider-find-file when locref cannot be resolved by info middleware
Diffstat (limited to 'cider-repl.el')
-rw-r--r--cider-repl.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/cider-repl.el b/cider-repl.el
index a22e8292..78d02371 100644
--- a/cider-repl.el
+++ b/cider-repl.el
@@ -1046,10 +1046,13 @@ regexes from `cider-locref-regexp-alist' to infer locations at point."
(if-let ((loc (cider-locref-at-point pos)))
(let* ((var (plist-get loc :var))
(line (plist-get loc :line))
- (file (if var
- (or (cider-sync-request:ns-path var)
- (nrepl-dict-get (cider-sync-request:info var) "file"))
- (plist-get loc :file))))
+ (file (or
+ ;; retrieve from info middleware
+ (when var
+ (or (cider-sync-request:ns-path var)
+ (nrepl-dict-get (cider-sync-request:info var) "file")))
+ ;; when not found, return the file detected by regexp
+ (plist-get loc :file))))
(if file
(cider--jump-to-loc-from-info (nrepl-dict "file" file "line" line))
(error "No source location for %s" var)))