Subject: bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files.

From: Eli Zaretskii <[email-masked]>
Date: Thu, 28 May 2015 17:56:41 +0300

> Cc: [email-masked]
> From: Dmitry Gutov <[email-masked]>
> Date: Thu, 28 May 2015 13:22:01 +0300
> 
> On 05/28/2015 05:50 AM, Eli Zaretskii wrote:
> 
> > I _was_ talking about explicit tag names.
> 
> AFAICS, 'etags -Q' doesn't generate explicit tag names for C++ (for 
> cases we're currently discussing).

Yes, it does.  Try running it on test/etags/cp-src/c.C, for example.

> Only patterns, to be matched implicitly.

Whether "etags -Q" generates explicit tag names or not is orthogonal
to whether it qualifies class members.  The decision depends on the
text surrounding the pattern.

> > Exuberant ctags does have such an option: --extra=+q.
> 
> This brings us to the third option. Here's what the 'ctags -e 
> --extra=+q' output looks like:
> 
> x.cc,210
> class XXXX1,0
> class YYYY8,54
> XX::foo()foo16,98
> XX::foo()XX::foo16,98
> XX::bar()bar22,132
> XX::bar()XX::bar22,132
> YY::bar()bar28,163
> YY::bar()YY::bar28,163
> main(int argc, char *argv[])main34,193

If you mean that producing two entries instead of one under -Q will
produce better results both with xref-find-definitions and with
completion, making the above happen in etags is an easy change, I
think.