GNU bug report logs - #44494
etags.el xref-location-marker does not handle TAGS references to .el.gz files

Previous Next

Package: emacs;

Reported by: Pierre Rouleau <prouleau001 <at> gmail.com>

Date: Fri, 6 Nov 2020 23:24:02 UTC

Severity: normal

Tags: confirmed, patch

Merged with 2807

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #38 received at 44494 <at> debbugs.gnu.org (full text, mbox):

From: Pierre Rouleau <prouleau001 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 44494 <at> debbugs.gnu.org, dgutov <at> yandex.ru
Subject: Re: bug#44494: etags.el xref-location-marker does not handle TAGS
 references to .el.gz files
Date: Sat, 7 Nov 2020 11:09:49 -0500
[Message part 1 (text/plain, inline)]
On Sat, Nov 7, 2020 at 10:52 AM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Pierre Rouleau <prouleau001 <at> gmail.com>
> > Date: Sat, 7 Nov 2020 10:39:41 -0500
> > Cc: dgutov <at> yandex.ru, 44494 <at> debbugs.gnu.org
> >
> > One difference is that when using find-tag is using code from etags.el
> exclusively:
> > - find-tag-noselect
> > . - find-tag-in-order   , which tries different predicates and the one
> that succeeds is
> > tag-implicit-name-match-p
> > .  - it identifies the cc-bytecomp.el.gz
> > .- calls etags-goto-tag-location
>
> The Xref etags backend also uses tag-implicit-name-match-p:
>
>   (defvar etags-xref-find-definitions-tag-order '(tag-exact-match-p
>
> tag-implicit-name-match-p)
>     "Tag order used in `xref-backend-definitions' to look for definitions.
>
>   If you want `xref-find-definitions' to find the tagged files by their
>   file name, add `tag-partial-file-name-match-p' to the list value.")
>
> > When using xref-find-definition the xref backend is used.  It's not the
> same code.
> > The xref backend code for elisp does not find it.  The backend code for
> etags does not find it either.
> > It tries to open cc-bytecomp.el as its the file name it gets from the
> TAGS file.
> > It detects the file not being present and reports it as missing,
> assuming the file have been removed.
> >
> > To me the 2 sets of code look very different.
>
> They share some of the code, at least when xref-etags-mode is used.
> So it sounds like some information found by tag-implicit-name-match-p
> doesn't get handed back to Xref?
>
> For the Xref's own ELisp backend, we will probably need to code
> something in xref.el.
>

Sorry, I meant that find-tag-in-order is able to find the reference in the
TAGS file when
it tries the tag-implicit-name-match-p predicate.  find-tag-in-order
returns a marker that identifies the .el.gz file.

I agree that for the ELisp backend something probably needs to be done to
support it.
But I also think that something must also be done for the etags xref
backend.
-- 
/Pierre
[Message part 2 (text/html, inline)]

This bug report was last modified 1 year and 218 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.