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

From: Eli Zaretskii <[email-masked]>
Date: Mon, 02 Jun 2025 09:30:17 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sun, 01 Jun 2025 18:19:31 -0400
> 
> > Btw, maybe I don't understand what 'finished' means in the documentation
> > of :exit-function, but it's somewhat confusing:
> >
> >                     ‘finished’ if text is now complete, ‘sole’ if the
> >           text cannot be further completed but completion is not
> >           finished, or ‘exact’ if the text is a valid completion but may
> >           be further completed.
> 
> Yes, I'm not sure how to write that (or even if those choices are
> relevant).
> 
> IIRC `sole` is used for example when completing `/h` to `/home/` where
> we expect that further completion will take place because we're
> expecting an actual file.  `exact` is similar but when completing `M-x
> dif` to `M-x diff`, where maybe this is the final completion but maybe
> the user will continue to, say, `M-x diff-refine-hunk`.
> 
> In contrast `finished` is when the recently inserted completion seems to
> be really "final".
> In selection UIs, `M-x diff` would also be `finished`, since the user
> presumably chose explicitly that entry instead of `diff-refine-hunk`.

So 'finished' is when TAB will show "Sole completion"?

As for the other two, how does the completion distinguish between the
two cases?  Under the default completion, TAB shows "Complete, but no
unique" in both cases, and in both cases we expect additional input
from the user.  How is the distinction done?