summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Leake <stephen_leake@stephe-leake.org>2019-10-20 06:39:02 -0700
committerStephen Leake <stephen_leake@stephe-leake.org>2019-10-20 06:39:02 -0700
commit3aa8f4d44c33d71b815e4e94c02d5ec13cfd6372 (patch)
treed7dabf323f95e5e6381e6fc6eb8fcb50cb1d59fb
parentf22a1008a1be01c1735e0ab42666b7d0ef537ffd (diff)
downloademacs-3aa8f4d44c33d71b815e4e94c02d5ec13cfd6372.tar.gz
emacs-3aa8f4d44c33d71b815e4e94c02d5ec13cfd6372.tar.bz2
emacs-3aa8f4d44c33d71b815e4e94c02d5ec13cfd6372.zip
In xref-location-marker, handle deleted file or outdated xref location nicely
* lisp/progmodes/xref.el (xref-location-marker): Add ignore-errors.
-rw-r--r--lisp/progmodes/xref.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 702de894528..8d8e7ab208e 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -131,8 +131,13 @@ Line numbers start from 1 and columns from 0.")
(widen)
(save-excursion
(goto-char (point-min))
- (beginning-of-line line)
- (forward-char column)
+ (ignore-errors
+ ;; xref location may be out of date; it may be past the
+ ;; end of the current file, or the file may have been
+ ;; deleted. Return a reasonable location; the user will
+ ;; figure it out.
+ (beginning-of-line line)
+ (forward-char column))
(point-marker))))))
(cl-defmethod xref-location-group ((l xref-file-location))