Subject: Re: bug#78489: 30.1.50; Using etags, Ada and xref-find-definitions doesn't find definitions

From: Eli Zaretskii <[email-masked]>
Date: Sat, 31 May 2025 14:46:42 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Tue, 27 May 2025 12:17:12 -0400
> 
> >> I haven't had time to look closely, but IIUC those `/p` aren't
> >> reallypart of the completed names but only some meta-info about their
> >> nature, so it sounds like a job for `:annotation-function` (in
> >> `completion-at-point-function`) or `annotation-function` (in the
> >> completion table's metadata).
> >
> > I'm not sure I follow: if you say that annotation-function should add
> > those "/p" qualifiers, then that's not really possible, since they are
> > appended by etags and are present in the TAGS file.  Ada tags always
> > worked like that, for some reason I cannot understand, but we cannot
> > easily change this now.
> 
> BTW, a less-ideal solution would be to use an `:exit-function` that
> removes the `/p`.  This is a lot more hackish because exit-functions are
> kind of optional (different UIs run them in different circumstances or
> not at all), plus there's the risk of removing a `/p` that was not
> supposed to be removed.

My problem is how to do this in a way that only affects "M-x
completion-at-point", but doesn't affect completion of tags in M-. or
other scenarios.  Can you suggest how to use the above so as to not
affret anything except completion-at-point?