all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>, Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: 19468@debbugs.gnu.org
Subject: bug#19468: 25.0.50; UI inconveniences with M-.
Date: Wed, 29 Apr 2015 00:00:31 +0300	[thread overview]
Message-ID: <553FF4EF.4080003@yandex.ru> (raw)
In-Reply-To: <83fv7kwbow.fsf@gnu.org>

On 04/28/2015 05:48 PM, Eli Zaretskii wrote:

> By
> contrast, the new UI is inconsistent: with some back-ends it shows the
> list of matches and allows to navigate it, with others it shows only
> the first match and does not give any way to get the next match.

The UI has nothing to do with it. It's just the etags backend often 
returns multiple results to the "find-definitions" command.

The elisp backend is more precise, but it can also return multiple 
results under certain conditions. For instance, when the exact name 
we're looking for corresponds to a function, a feature name, and a face 
(there's certain effort there not to show both a function and a variable 
with the same name, because they usually both point to a minor mode 
definition).

>> No: there's only one definition of `find-tag' so Elisp's xref backend
>> just returns that one and that's it.
>
> There's more than one matching definition, see below.

If you want "matching" definitions, use xref-find-apropos.

> But that's largely immaterial: this bug report is not about the
> back-end, it's about the UI.  The UI should be independent of the
> back-end, otherwise the users will be confused when they switch
> between languages.

The UI can only work with that a backend returns to it. A non-ideal 
implementation can result in non-ideal behavior in the end.

> (If it turns out that some back-ends need to be
> augmented so that they allow the front-end to present similar UI for
> the same query, then those back-ends should be enhanced.)

Sure. I'd be happy to leave that to someone else, but there doesn't seem 
to be someone actively maintaining it.

In that situation, we first try to make the backend work as well as 
`find-tag'. Patches, as well as specific technical suggestions, are very 
welcome.

>> Arguably, the find-tag advice in org-ctags.el could be offered as well,
>> if org-ctags.el happens to be loaded
>
> ??? Why should the xref matches depend on what is and isn't loaded?

The above is referring to the Elisp xref backend, which is based on the 
package `find-func'. Which, yes,

> That would make xref exactly equivalent to "M-x apropos", which means
> this mode of operation would make xref entirely redundant.

I don't know how to respond to this. Yes, they use the same data 
available at runtime. No, they're not exact duplicates of each other; 
the data is used in slightly different ways and presented in a different 
interface.

> To say
> nothing of the fact that this doesn't scale to any language except
> ELisp.

Yes, the Elisp backend doesn't scale to other languages.

> (One of my worst annoyances is to type a
> C-h command and be presented with "[No match]", because some package
> is not loaded or some function is not available in the Emacs
> configuration I happen to be using.)

It's the cost of doing business, as far as I'm concerned. You can't use 
tags for non-core Elisp code anyway, such as anything in your init 
directory (installed packages, etc), and any Elisp files installed 
separately by the operating system's distribution.

Actually, if you're not working on a Git checkout, I don't think you can 
use the tags even for the Elisp code that's part of Emacs.

> The important point for the purposes of this bug report is that the
> stuff presented by the UI for the same query does not differ so
> radically when you switch the back-end.

In general, it's the concern of each particular backend, to adhere to 
the described interface. The UI has nothing to do with it.

>    . there should be a way to go to the next/previous match if the
>      *xref* buffer is not displayed (or not created in the first
>      place); if this happens because there's only one match, we should
>      say so explicitly

I don't see the point. That fact that we've jumped to a new location 
means there was a match, and since we haven't seen the xref buffer, 
there were no other matches.

The message might feel assuring to you in the beginning, but over time I 
think it'll just become a nuisance.

>    . when there are more than one possible match, the UI should behave
>      similarly, i.e. display the *xref* buffer; when there's only one
>      match, it should _never_ display *xref*,

That's how it works already. With the exception of the "possible match" 
phrasing, which is nonsense to me. There either are matches of the kind 
that the current command is asking for, or there aren't.

>    . if the criteria for filtering of the matches are very different
>      between the possible back-ends, there should be some agreed-upon
>      uniform default that returns roughly the same number of matches
>      with all back-ends, and the rest should be controlled by user
>      options

These criteria are described in the xref-find-function docstring. Maybe 
not ideally: feel free to suggest a more clear wording.





  reply	other threads:[~2015-04-28 21:00 UTC|newest]

Thread overview: 250+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-29 20:26 bug#19468: 25.0.50; UI inconveniences with M- Eli Zaretskii
2014-12-30  6:04 ` Dmitry Gutov
2014-12-30  8:19   ` Helmut Eller
2014-12-30 16:00     ` Eli Zaretskii
2014-12-30 17:02       ` Helmut Eller
2014-12-30 17:39         ` Eli Zaretskii
2014-12-30 19:56       ` Dmitry Gutov
2014-12-30 19:38     ` Dmitry Gutov
2014-12-30 22:58       ` Helmut Eller
2015-01-03 21:37         ` Dmitry Gutov
2015-01-04  8:55           ` martin rudalics
2015-01-04 22:51             ` Dmitry Gutov
2015-01-05  7:08               ` martin rudalics
2015-01-06 10:39                 ` Dmitry Gutov
2015-04-26 14:56                   ` Eli Zaretskii
2015-04-27  4:30                     ` Stefan Monnier
2015-04-27 15:07                       ` Eli Zaretskii
2015-04-27 17:35                         ` Stefan Monnier
2015-04-27 19:26                           ` Eli Zaretskii
2015-04-27 21:54                             ` Stefan Monnier
2015-04-27 22:45                               ` Dmitry Gutov
2015-04-28 14:56                                 ` Eli Zaretskii
2015-04-28 14:48                               ` Eli Zaretskii
2015-04-28 21:00                                 ` Dmitry Gutov [this message]
2015-04-29 15:41                                   ` Eli Zaretskii
2015-04-29 17:22                                     ` Dmitry Gutov
2015-04-29 17:58                                       ` Eli Zaretskii
2015-04-29  2:41                                 ` Stefan Monnier
2015-04-29  6:10                                   ` Helmut Eller
2015-04-29 13:23                                     ` conflicting uses of next-error-function (was: UI inconveniences with M-.) Stefan Monnier
2015-04-29 16:58                                       ` conflicting uses of next-error-function Helmut Eller
2015-04-29 17:40                                         ` Dmitry Gutov
2015-04-29 18:15                                           ` Helmut Eller
2015-04-29 23:14                                             ` Dmitry Gutov
2015-04-30  6:19                                               ` Helmut Eller
2015-04-30  8:04                                                 ` Dmitry Gutov
2015-04-30 17:46                                                   ` Helmut Eller
2015-05-02 23:20                                                     ` Dmitry Gutov
2015-05-03  6:54                                                       ` Helmut Eller
2015-05-03 11:45                                                         ` Dmitry Gutov
2015-05-03 13:25                                                           ` Helmut Eller
2015-05-03 14:12                                                             ` Dmitry Gutov
2015-05-04 22:21                                                               ` Ted Zlatanov
2015-05-05  2:28                                                                 ` Dmitry Gutov
2015-05-05  9:47                                                                   ` Ted Zlatanov
2015-05-05 14:05                                                                     ` Dmitry Gutov
2015-05-05 14:26                                                                       ` Ted Zlatanov
2015-04-29 23:05                                       ` Vitalie Spinu
2015-04-29 23:11                                         ` Dmitry Gutov
2015-04-29 23:52                                           ` Vitalie Spinu
2015-04-29 23:15                                       ` Dmitry Gutov
2015-04-30  6:35                                         ` Stefan Monnier
2015-04-29 15:26                                     ` UI inconveniences with M- Vitalie Spinu
2015-04-30  0:44                                       ` Dmitry Gutov
2015-04-30  0:55                                         ` Vitalie Spinu
2015-04-29 17:08                                     ` Dmitry Gutov
2015-04-29 15:44                                   ` Eli Zaretskii
2015-04-29 15:57                                     ` Dmitry Gutov
2015-04-29 16:17                                       ` Eli Zaretskii
2015-04-29 16:25                                         ` Dmitry Gutov
2015-04-29 16:53                                           ` Eli Zaretskii
2015-04-29 17:06                                             ` Dmitry Gutov
2015-04-29 17:15                                               ` Eli Zaretskii
2015-04-29 17:26                                                 ` Dmitry Gutov
2015-04-29 17:59                                                   ` Eli Zaretskii
2015-04-29 18:10                                                     ` Dmitry Gutov
2015-04-29 21:54                                     ` Stefan Monnier
2015-04-30 13:42                                       ` Eli Zaretskii
2015-05-01 14:21                                         ` Stefan Monnier
2015-05-01 18:32                                           ` Eli Zaretskii
2015-05-01 21:04                                             ` Stefan Monnier
2015-05-01 21:13                                               ` Dmitry Gutov
2015-05-02  7:00                                                 ` Stefan Monnier
2015-05-02  7:18                                               ` Eli Zaretskii
2015-05-02  8:35                                           ` Fumitaka Tokumitsu
2015-05-01 21:11                                         ` Dmitry Gutov
2015-05-02  8:12                                           ` Eli Zaretskii
2015-05-02  8:46                                             ` Fumitaka Tokumitsu
2015-05-02 12:41                                             ` Dmitry Gutov
2015-05-02 12:57                                               ` Eli Zaretskii
2015-05-02 13:31                                                 ` Dmitry Gutov
2015-05-02 13:44                                                   ` Eli Zaretskii
2015-05-02 17:44                                                     ` Dmitry Gutov
2015-05-02  8:26                                   ` Fumitaka Tokumitsu
2015-04-27 22:36                             ` bug#19468: 25.0.50; " Dmitry Gutov
2015-04-27 23:15                               ` Stefan Monnier
2015-04-27 23:25                                 ` Dmitry Gutov
2015-04-28  1:26                                   ` Stefan Monnier
2015-04-28  1:37                                     ` Dmitry Gutov
2015-04-28 13:30                                       ` Stefan Monnier
2015-04-28 21:04                                         ` Dmitry Gutov
2015-04-29  3:13                                           ` Stefan Monnier
2015-04-29  3:25                                             ` Dmitry Gutov
2015-04-29  4:15                                               ` Stefan Monnier
2015-04-27 22:44                           ` bug#19468: 25.0.50; " Dmitry Gutov
2015-04-27 23:19                             ` Stefan Monnier
2015-04-28  0:24                               ` Dmitry Gutov
2015-04-28  1:34                                 ` Stefan Monnier
2015-04-28 15:01                                 ` Eli Zaretskii
2015-04-28 18:47                                   ` Dmitry Gutov
2015-04-28 14:59                               ` Eli Zaretskii
2015-04-28 14:55                             ` Eli Zaretskii
2015-04-28 21:33                               ` Dmitry Gutov
2015-04-29 15:46                                 ` Eli Zaretskii
2015-04-29 22:56                                   ` Dmitry Gutov
2015-04-30 13:48                                     ` Eli Zaretskii
2015-05-01  2:27                                       ` Dmitry Gutov
2015-05-01  6:45                                         ` Eli Zaretskii
2015-05-01 11:27                                           ` Dmitry Gutov
2015-05-01 12:57                                             ` Eli Zaretskii
2015-05-01 14:51                                               ` Dmitry Gutov
2015-05-01 18:38                                                 ` Eli Zaretskii
2015-05-01 18:44                                                   ` Dmitry Gutov
2015-05-01 19:22                                                     ` Eli Zaretskii
2015-05-01 20:36                                                       ` Dmitry Gutov
2015-05-02  6:59                                                         ` Stefan Monnier
2015-05-02  7:59                                                           ` Helmut Eller
2015-05-02  8:39                                                             ` Eli Zaretskii
2015-05-02  9:09                                                               ` Helmut Eller
2015-05-02  9:24                                                                 ` Eli Zaretskii
2015-05-02  9:50                                                                   ` Helmut Eller
2015-05-02 18:29                                                             ` Dmitry Gutov
2015-05-02 13:13                                                           ` xref "find references" and grouping Dmitry Gutov
2015-05-02 14:14                                                             ` Helmut Eller
2015-05-02 19:01                                                               ` Dmitry Gutov
2015-05-03  7:47                                                                 ` Helmut Eller
2015-05-04  1:35                                                                   ` Stefan Monnier
2015-05-04  2:09                                                                   ` Dmitry Gutov
2015-05-04 13:10                                                                     ` Vitalie Spinu
2015-05-04 14:21                                                                       ` Vitalie Spinu
2015-05-04 21:29                                                                       ` Dmitry Gutov
2015-05-05  0:02                                                                         ` Vitalie Spinu
2015-05-05  0:18                                                                           ` Dmitry Gutov
2015-05-05  1:45                                                                             ` Vitalie Spinu
2015-05-02 19:10                                                           ` UI inconveniences with M- Dmitry Gutov
2015-05-04 13:41                                                           ` Vitalie Spinu
2015-05-04 21:34                                                             ` Dmitry Gutov
2015-05-05  0:13                                                               ` Vitalie Spinu
2015-05-05  0:14                                                                 ` Dmitry Gutov
2015-05-05  1:36                                                                   ` Vitalie Spinu
2015-05-05 15:06                                                                     ` Dmitry Gutov
2015-05-02  7:39                                                         ` bug#19468: 25.0.50; " Eli Zaretskii
2015-05-01 18:13                                               ` Stefan Monnier
2015-04-27 22:09                         ` Dmitry Gutov
2015-04-28 14:49                           ` Eli Zaretskii
2015-04-28 21:59                             ` Dmitry Gutov
2015-04-29 15:46                               ` Eli Zaretskii
2015-04-29 22:32                                 ` Dmitry Gutov
2015-04-27 15:13                       ` Eli Zaretskii
2015-04-27 17:21                         ` Stefan Monnier
2015-04-27 19:15                           ` Eli Zaretskii
2015-04-27 21:42                             ` Stefan Monnier
2015-04-27 22:32                             ` Dmitry Gutov
2015-04-28 14:55                               ` Eli Zaretskii
2015-04-28 22:04                                 ` Dmitry Gutov
2015-04-29 15:47                                   ` Eli Zaretskii
2015-04-27 22:25                           ` Dmitry Gutov
2015-04-27 22:54                             ` Stefan Monnier
2015-04-27 23:15                               ` Dmitry Gutov
2015-04-28  1:25                                 ` Stefan Monnier
2015-04-28  2:15                                   ` Dmitry Gutov
2015-04-28 13:36                                     ` Stefan Monnier
2015-04-29  0:24                                       ` Dmitry Gutov
2015-04-28 15:03                                     ` Eli Zaretskii
2015-04-28 22:07                                       ` Dmitry Gutov
2015-04-29 15:47                                         ` Eli Zaretskii
2015-04-28 14:58                                 ` Eli Zaretskii
2015-04-28 22:08                                   ` Dmitry Gutov
2015-04-28  0:01                               ` Drew Adams
2015-04-28 14:57                               ` Eli Zaretskii
2015-04-29  3:12                                 ` Etags.el (was: UI inconveniences with M-.) Stefan Monnier
2015-04-29 15:52                                   ` Eli Zaretskii
2015-04-29 22:14                                     ` Etags.el Stefan Monnier
2015-04-29 15:00                               ` bug#19468: 25.0.50; UI inconveniences with M- Vitalie Spinu
2015-04-29 15:25                                 ` Dmitry Gutov
2015-04-29 16:01                                   ` Vitalie Spinu
2015-04-29 22:02                                   ` Stefan Monnier
2015-04-29 16:11                                 ` Eli Zaretskii
2015-04-28 14:52                             ` Eli Zaretskii
2015-04-28 22:28                               ` Dmitry Gutov
2015-04-29 15:48                                 ` Eli Zaretskii
2015-04-29 17:43                                   ` Dmitry Gutov
2015-04-29 18:03                                     ` Eli Zaretskii
2015-05-02  0:08                                       ` Dmitry Gutov
2015-05-02  6:42                                         ` Eli Zaretskii
2015-05-02 10:23                                           ` Dmitry Gutov
2015-05-02 11:24                                             ` Eli Zaretskii
2015-05-02 12:07                                               ` Dmitry Gutov
2015-05-02 12:46                                                 ` Eli Zaretskii
2015-05-02  7:10                                         ` Eli Zaretskii
2015-05-02 10:11                                           ` Dmitry Gutov
2015-05-02 11:16                                             ` Eli Zaretskii
2015-05-02 11:45                                               ` Eli Zaretskii
2015-05-02 12:16                                                 ` Dmitry Gutov
2015-05-02 12:49                                                   ` Eli Zaretskii
2015-05-02 13:04                                                     ` Dmitry Gutov
2015-05-03 14:44                                                   ` Eli Zaretskii
2015-05-02 12:01                                               ` Dmitry Gutov
2015-05-02 12:45                                                 ` Eli Zaretskii
2015-05-02 13:42                                                   ` Dmitry Gutov
2015-05-02 14:13                                                     ` Eli Zaretskii
2015-05-02 17:41                                                       ` Dmitry Gutov
2015-05-02 18:45                                                         ` Eli Zaretskii
2015-05-02 19:17                                                           ` Dmitry Gutov
2015-05-02 19:45                                                             ` Eli Zaretskii
2015-05-02 20:06                                                               ` Dmitry Gutov
2015-05-02 13:41                                                 ` Eli Zaretskii
2015-05-02 17:35                                                   ` Dmitry Gutov
2015-05-04 14:48                                                     ` Eli Zaretskii
2015-04-27 22:15                         ` Dmitry Gutov
2015-04-28 14:50                           ` Eli Zaretskii
2015-04-28 22:15                             ` Dmitry Gutov
2015-04-29 15:48                               ` Eli Zaretskii
2015-04-29 17:42                                 ` Dmitry Gutov
2015-04-27 22:02                       ` Dmitry Gutov
2015-04-27 23:47                     ` Dmitry Gutov
2015-04-28 15:00                       ` Eli Zaretskii
2015-04-28 23:24                         ` Dmitry Gutov
2015-04-29 15:49                           ` Eli Zaretskii
2015-04-29 23:03                             ` Dmitry Gutov
2015-04-30 13:49                               ` Eli Zaretskii
2014-12-30 15:41   ` Eli Zaretskii
2014-12-30 20:26     ` Dmitry Gutov
2015-01-04 23:52     ` Dmitry Gutov
2015-01-05 19:43       ` Eli Zaretskii
2014-12-30 17:03   ` Stefan Monnier
2014-12-30 17:11     ` Dmitry Gutov
2014-12-30 17:43       ` Eli Zaretskii
2014-12-30 17:49       ` Dmitry Gutov
2014-12-30 18:01         ` Eli Zaretskii
2014-12-30 17:25     ` Helmut Eller
2014-12-30 18:08       ` Stefan Monnier
2014-12-30 17:41     ` Eli Zaretskii
2014-12-30 17:50       ` Helmut Eller
2014-12-30 17:58         ` Eli Zaretskii
2014-12-30 18:08           ` Dmitry Gutov
2014-12-30 17:53       ` Dmitry Gutov
2014-12-30 18:00         ` Eli Zaretskii
2014-12-30 18:01           ` Helmut Eller
2014-12-30 18:13             ` Eli Zaretskii
2014-12-30 18:20               ` Helmut Eller
2014-12-30 18:27                 ` Eli Zaretskii
2014-12-30 18:33                   ` Helmut Eller
2014-12-30 18:38                     ` Eli Zaretskii
2014-12-30 18:53                       ` Helmut Eller
2014-12-30 19:33                         ` Eli Zaretskii
2014-12-30 18:33                   ` Dmitry Gutov
2016-02-21 23:00 ` Dmitry Gutov
2016-02-22 17:18   ` Eli Zaretskii
2016-02-22 21:15     ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=553FF4EF.4080003@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=19468@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=monnier@IRO.UMontreal.CA \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.