diff --git a/cider-stacktrace.el b/cider-stacktrace.el index 05fc64df1..553d018e8 100644 --- a/cider-stacktrace.el +++ b/cider-stacktrace.el @@ -403,9 +403,12 @@ it wraps to 0." (method (button-get button 'method)) (info (or (and var (cider-var-info var)) (and class method (cider-member-info class method)) - `(dict "file" ,(button-get button 'file)))) + (nrepl-dict))) ;; stacktrace returns more accurate line numbers - (info (nrepl-dict-put info "line" (button-get button 'line)))) + (info (nrepl-dict-put info "line" (button-get button 'line))) + ;; info middleware returns full paths, but sometimes fails + (info (nrepl-dict-put info "file" (or (nrepl-dict-get info "file") + (button-get button 'file))))) (cider--jump-to-loc-from-info info t))) (defun cider-stacktrace-jump () diff --git a/nrepl-client.el b/nrepl-client.el index 5c77a65b6..029bc4b81 100644 --- a/nrepl-client.el +++ b/nrepl-client.el @@ -303,6 +303,10 @@ If so ask the user for confirmation." ;;; nREPL dict +(defun nrepl-dict (&rest key-vals) + "Create nREPL dict from KEY-VALS." + (cons 'dict key-vals)) + (defun nrepl-dict-p (object) "Return t if OBJECT is a nREPL dict." (and (listp object)