@@ -682,24 +682,34 @@ When called interactively, this operates on point."
682
682
(cider-jump-to buffer (cons line nil ))
683
683
(message " Cannot find resource %s " path)))
684
684
685
- (defun cider-jump-to-var (var &optional line )
686
- " Jump to the definition of VAR, optionally at a specific LINE.
687
- When called interactively, this operates on point, or falls back to a prompt."
688
- (interactive (list (cider-read-symbol-name " Symbol: " 'identity )))
689
- (cider-ensure-op-supported " info" )
690
- (-if-let (info (cider-var-info var))
691
- (-if-let* ((file (cadr (assoc " file" info)))
692
- (line (or line (cadr (assoc " line" info))))
693
- (buffer (cider-find-file file)))
694
- (cider-jump-to buffer (cons line nil ))
685
+ (defun cider--jump-to-loc-from-info (info &optional other-buffer )
686
+ " Jump to location give by INFO.
687
+ INFO object is returned by `cider-var-info' or `cider-member-info' .
688
+ OTHER-BUFFER is passed to `cider-jamp-to' ."
689
+ (-if-let* ((file (cadr (assoc " file" info)))
690
+ (line (cadr (assoc " line" info)))
691
+ (buffer (cider-find-file file)))
692
+ (cider-jump-to buffer (cons line nil ) other-buffer)
695
693
; ; var was created interactively and has no file info
696
694
(-if-let* ((ns (cadr (assoc " ns" info)))
697
695
(name (cadr (assoc " name" info)))
698
696
(buffer (cider-find-buffer ns))
699
- (pos (cider-locate-def name buffer)))
700
- (cider-jump-to buffer pos)
701
- (message " No source available for %s " var)))
702
- (message " Symbol %s not resolved " var)))
697
+ (pos (cider-locate-def name buffer line)))
698
+ (cider-jump-to buffer pos other-buffer)
699
+ (-if-let (name (cadr (assoc " name" info)))
700
+ (message " No location found for %s " name)
701
+ (message " No source info " )))))
702
+
703
+ (defun cider-jump-to-var (&optional var line )
704
+ " Jump to the definition of VAR, optionally at a specific LINE.
705
+ When called interactively, this operates on point, or falls back to a prompt."
706
+ (interactive )
707
+ (cider-ensure-op-supported " info" )
708
+ (cider-read-symbol-name
709
+ " Symbol: " (lambda (var )
710
+ (-if-let (info (cider-var-info var))
711
+ (cider--jump-to-loc-from-info info)
712
+ (message " Symbol %s not resolved " var)))))
703
713
704
714
(define-obsolete-function-alias 'cider-jump 'cider-jump-to-var " 0.7.0" )
705
715
(defalias 'cider-jump-back 'pop-tag-mark )
0 commit comments