Subject: Re: bug#32512: xref--read-identifier using etags backend should honor case-fold-search

From: Eli Zaretskii <[email-masked]>
Date: Thu, 23 Aug 2018 20:29:55 +0300

> Date: Thu, 23 Aug 2018 17:11:18 +0100
> From: Ludovic Brenta <[email-masked]>
> 
> (a)
> M-. foo.bar/b => jumps to foo-bar.adb line 1, "package Foo.Bar is".
> 
> but
> 
> (b)
> M-. foo.bar <TAB> => "no match"
> 
> In (a), xref-find-definition took whatever my input was and honored
> case-fold-search, which is t, to find the definition of the package.
> 
> But when I type <TAB> asking for possible completions, 
> xref--read-identifier
> is case-sensitive whether I like it or not.  Indeed:
> 
> (c)
> M-. Foo.Bar <TAB> => produces the desired completion Foo.Bar/b
> 
> The inconsistency between (a) and (b) is anti-ergonomic.
> 
> I looked for a variable, separate from case-fold-search, that would
> control the case sensitivity of completion in this case, but I couldn't
> find one.

I think one of explicit goals of Xref development was to make it much
more accurate than etags is, which is why it explicitly disables some
loose match methods etags offers (and was using when its front-end was
invoked by M-.).  With that in mind, folding case would go against
that goal, so I'm not sure it's a step in the right direction.

Is the problem the inconsistency between (a) and (b), or is the
problem that you _want_ xref-find-definition to be case-insensitive?
If the former, perhaps we should instead make (a) fail as well?

Thanks.