unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Anders Lindgren <andlind@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: 23179@debbugs.gnu.org
Subject: bug#23179: 25.0.92; Restore `M-,' to continue etags search
Date: Mon, 4 Apr 2016 10:43:52 +0200	[thread overview]
Message-ID: <CABr8eba3qPDbxHGY5Yq5hDdSpA0TsCkttKw3FwKwudBe8T2aSg@mail.gmail.com> (raw)
In-Reply-To: <8c1fc5c4-1f80-b889-3f16-55673836ed13@yandex.ru>

[-- Attachment #1: Type: text/plain, Size: 3859 bytes --]

Hi!

I would suggest that xref should provide two kinds of searches:
>> one incremental (like `tags-search') and one `find-all' (like the
>> provided function).
>>
>
> Patch welcome, I suppose, but the current API is not amenable to such
> usage, so see below (++).


Unfortunately, I have very little time to do heavy lifting on Emacs anymore
(which is why recently stepped down maintaining the NS port). However, I
try to help out by providing user experience feedback, whenever I find
something that doesn't feel right.


* The xref UI window is not updated to reflect the current location. For
>> example, in a *grep* buffer, the cursor move and an arrow in the left
>> fringe reflect the current location.
>>
>
> Not updated when? When you call `next-error'? I imagine that's something
> to implement in that facility, then, so that every other mode implementing
> next-error-function benefits.


Yes. In a *grep* buffer, the point and arrow moves to reflect the current
entry.


* I like the touch that the matches in the *xref* buffer are syntax
>> highlighted. Unfortunately, not all matches are highlighted. It appears
>> as though only matches in previously viewed parts of source files retain
>> syntax highlighting.
>>
>
> Only those already visited by font-lock, yes.
>

It could be easily fixed by a call to `font-lock-ensure' (at least for
files already loaded into Emacs).


* `next-error' issued from an *xref* search don't reuse the source
>> windows (whereas a `next-error' issued from a grep buffer does).
>> * `next-error' in ChangeLog buffers cause Emacs to go to the
>> corresponding change. This makes it hard to step past irrelevant xref
>> matches if they occur a ChangeLog file.
>>
>
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20489
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20493
>
> Help welcome.


OK, I see that those problems are known. I hope that they get fixed, as
they are annoying.


+++ Using "etags *.h *.m *.c" in the Emacs "src" directory,
>> `(tags-search "nstrace")' find the first occurrence in 0.7 seconds,
>> whereas the new `tags-find-regexp' takes over 8 seconds to perform a
>> full search.
>>
>
> The previous UI has pathological cases as well. Take e.g. some project
> where "xyz" only occurs in the last file among those listed in TAGS.
> Searching through all of those, by opening each one in Emacs in sequence,
> with re-search-forward, is surely slower that using Grep.
>
> On the other hand, yes, the fact that the matches don't appear as soon as
> they're available, is a problem. Could you open a separate bug for that?
>

I'd rather prefer if you would file a bug, I don't know which part I should
refer to, as I've only used your experimental `tags-find-regexp' code.



> In other words, I would prefer if we would add an incremental xref
>> query-replace command along the lines I suggested for the search command
>> above.
>>
>
> It would need to know where to get the matches from. Or you'll end with N
> new query-replace commands, just like we have now (tags-query-replace,
> dired-do-query-replace-regexp, etc).


If an xref backend would supply a list of files, you can easily implement a
generic `xref-query-replace' command.

However, if a backend isn't file based, maybe a better interface would be
to ask it for "next buffer" and it can fill it with whatever content it
want's to. In this case, it would be possible to implement a generic
xref-query-replace.

Anyway, your suggestion with generators sounds interesting.


Finally, if all the tags commands should be made obsolete, their
>> documentations should be updated with references to the commands that
>> are intended to replace them.
>>
>
> We do that with "(declare (obsolete ...".
>

Ah, I see that some commands like `find-tag' is marked as obsolete, however
`tags-search', and a few others, are not.

    -- Anders

[-- Attachment #2: Type: text/html, Size: 6606 bytes --]

  parent reply	other threads:[~2016-04-04  8:43 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-01  8:55 bug#23179: 25.0.92; Restore `M-,' to continue etags search Anders Lindgren
2016-04-01  9:02 ` Dmitry Gutov
2016-04-01 10:35   ` Anders Lindgren
2016-04-01 11:03     ` Eli Zaretskii
2016-04-01 23:44       ` Dmitry Gutov
2016-04-02  6:58         ` Eli Zaretskii
2016-04-02 23:39           ` Dmitry Gutov
2016-04-03 15:32             ` Eli Zaretskii
2016-04-03 17:21               ` Dmitry Gutov
2016-04-03 17:28                 ` Eli Zaretskii
2016-04-03 18:32             ` Anders Lindgren
2016-04-03 18:42               ` Eli Zaretskii
2016-04-03 18:49                 ` Anders Lindgren
2016-04-03 18:59                   ` Eli Zaretskii
2016-04-03 19:11                     ` Anders Lindgren
2016-04-03 19:15                       ` Eli Zaretskii
2016-04-03 20:15                         ` Andy Moreton
2016-04-04  2:46                           ` Eli Zaretskii
2016-04-04  8:46                             ` Andy Moreton
2016-04-04 14:57                               ` Eli Zaretskii
2016-04-03 20:30                         ` Anders Lindgren
2016-04-04  2:48                           ` Eli Zaretskii
2016-04-04  4:22                             ` Anders Lindgren
2016-04-04 15:49                               ` Eli Zaretskii
2016-04-04 16:53                                 ` Dmitry Gutov
2016-04-05 15:12                                   ` Eli Zaretskii
2016-04-05 15:27                                     ` Dmitry Gutov
2016-04-05 15:56                                       ` Eli Zaretskii
2016-04-05 16:00                                         ` Dmitry Gutov
2016-04-05 16:18                                           ` Eli Zaretskii
2016-04-05 17:40                                             ` Dmitry Gutov
2016-04-05 18:10                                               ` John Wiegley
2016-04-05 18:12                                                 ` Dmitry Gutov
2016-04-05 19:32                                                   ` John Wiegley
2016-04-05 20:34                                                     ` Dmitry Gutov
2016-04-06  0:55                                                       ` John Wiegley
2016-04-06 10:23                                                         ` Dmitry Gutov
2016-04-05 19:23                                               ` Eli Zaretskii
2016-04-05 20:19                                                 ` Dmitry Gutov
2016-04-08  8:17                                     ` Eli Zaretskii
2016-04-08  8:56                                       ` Anders Lindgren
2016-04-08  9:18                                         ` Eli Zaretskii
2016-04-08 10:28                                           ` Anders Lindgren
2016-04-08 10:32                                             ` Eli Zaretskii
2016-04-08 10:38                                               ` Dmitry Gutov
2016-04-08 10:53                                               ` Anders Lindgren
2016-04-08 13:13                                                 ` Dmitry Gutov
2016-04-09  7:40                                                 ` Eli Zaretskii
2016-04-03 19:36               ` Eli Zaretskii
2016-04-03 20:59               ` Dmitry Gutov
2016-04-03 22:44                 ` John Wiegley
2016-04-03 23:00                   ` Dmitry Gutov
2016-04-04  8:43                 ` Anders Lindgren [this message]
2016-04-04 10:41                   ` Dmitry Gutov
2016-04-04 16:58                     ` Anders Lindgren
2016-04-04 17:25                       ` Dmitry Gutov
2016-04-04 17:54                         ` Eli Zaretskii
2016-04-04 20:19                           ` Dmitry Gutov
2016-04-04 17:47                       ` Eli Zaretskii
2016-04-05  5:43                     ` Anders Lindgren
2016-04-05 12:54                       ` Dmitry Gutov
2016-04-05 14:41                         ` Eli Zaretskii
2016-04-05 15:30                           ` Dmitry Gutov
2016-04-05 15:57                             ` Eli Zaretskii
2016-04-04  8:54                 ` Anders Lindgren
2016-04-04 10:46                   ` Dmitry Gutov
2016-04-04 15:03                     ` Eli Zaretskii
2016-04-04 15:00                   ` Eli Zaretskii
2016-04-01 23:48     ` Dmitry Gutov
2019-04-01  6:40   ` pklammer
2019-04-01  9:36     ` Eli Zaretskii
2019-04-02 14:47       ` pklammer
2019-04-02 15:20         ` Eli Zaretskii
2019-04-02 15:35           ` Dmitry Gutov
2019-04-06 21:12             ` Juri Linkov
2019-04-07  0:38               ` Dmitry Gutov
2019-04-07 20:27                 ` Juri Linkov
2019-04-07 23:07                   ` Dmitry Gutov
2019-04-08 19:55                     ` Juri Linkov
2019-04-08 23:34                       ` Dmitry Gutov
2019-04-11 20:40                 ` Juri Linkov
2019-04-12  1:11                   ` Dmitry Gutov
2019-04-13 21:57                     ` Juri Linkov
2019-04-14 12:52                       ` Dmitry Gutov
2019-04-14 19:55                         ` Juri Linkov
2019-04-14 21:41                           ` Dmitry Gutov
2019-04-24 20:33                 ` Juri Linkov
2019-04-24 23:31                   ` Dmitry Gutov
2019-04-29 19:32                     ` Juri Linkov
2016-04-01  9:23 ` Eli Zaretskii
2016-04-01 10:13   ` Anders Lindgren
2016-04-01 10:59     ` Eli Zaretskii
2016-04-02 19:46       ` Anders Lindgren
2016-04-02 19:58         ` Eli Zaretskii
2016-04-02 21:42         ` John Wiegley
2016-04-02 22:28           ` Dmitry Gutov
2016-04-03 17:31             ` John Wiegley
2016-04-03 17:40               ` Dmitry Gutov
2016-04-03 18:04                 ` John Wiegley
2016-04-03 18:10                   ` Dmitry Gutov
2016-04-04  2:39                   ` Eli Zaretskii
2016-04-03 18:22               ` Eli Zaretskii
2016-04-02 22:54         ` Dmitry Gutov
2016-04-04  8:21           ` Anders Lindgren
2016-04-04 11:00             ` Dmitry Gutov
2020-08-24 18:18 ` Lars Ingebrigtsen

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=CABr8eba3qPDbxHGY5Yq5hDdSpA0TsCkttKw3FwKwudBe8T2aSg@mail.gmail.com \
    --to=andlind@gmail.com \
    --cc=23179@debbugs.gnu.org \
    --cc=dgutov@yandex.ru \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).