   "Go to the OFFSETth byte in the current line."
   (goto-char (byte-to-position (+ (position-bytes (point-at-bol)) (1- offset)))))
 
-(defun go-guru--goto-pos (posn)
+(defun go-guru--goto-pos (posn other-window)
   "Find the file containing the position POSN (of the form `file:line:col')
 set the point to it, switching the current buffer."
   (let ((file-line-pos (split-string posn ":")))
-    (find-file (car file-line-pos))
+    (funcall (if other-window #'find-file-other-window #'find-file) (car file-line-pos))
     (goto-char (point-min))
     (forward-line (1- (string-to-number (cadr file-line-pos))))
     (go-guru--goto-byte-column (string-to-number (cl-caddr file-line-pos)))))

        ;; TODO: Integrate this facility with XRef.
        (xref-push-marker-stack)
      (ring-insert find-tag-marker-ring (point-marker)))
    (go-guru--goto-pos (cdr (assoc 'objpos res)))
    (message "%s" desc)))

;;;###autoload
(defun go-guru-describe ()

  (go-guru--start "callstack"))

;;;###autoload
(defun go-guru-definition (&optional other-window)
  "Jump to the definition of the selected identifier."
  (interactive)
  (or buffer-file-name
