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:21:31 +0200 [thread overview]
Message-ID: <CABr8ebYahZx5BRB0survbw5_4nXKo1nkGBa5V02R=9BU8uwp2g@mail.gmail.com> (raw)
In-Reply-To: <d099777f-d9ec-9594-f0b3-e1eac724ca32@yandex.ru>
[-- Attachment #1: Type: text/plain, Size: 3589 bytes --]
Hi!
Dmitry:
I think that we would be making a big mistake if we would release Emacs
>> 25 with an "xref" without searching and query-replace, but with key
>> bindings that, for most tags users, break existing use patterns.
>>
>
> As already mentioned, we have multiple solutions for searching, and one
> unified command for query-replace, invoked from the xref buffer.
I have tried all the the functions you have suggested, but I didn't get any
of them to perform like I wanted to. Of course, I didn't have time to dig
into each one of them, so that, for example,
`project-or-external-find-regexp' asked for a new project root directory
and then failed to turn up any matches I put it aside. Likewise, the
"dired" command is not what I was looking for, as it would require me to
mark a number of directories manually before starting.
> Today, many people use "tags" as a simple project file. They don't want
>> to redo this process with another tool ("project") and a dired approach
>> might not match a project layout at all.
>>
>
> project-or-external-find-regexp will take the tags files into account, as
> long as the current major mode hasn't overridden
> project-vc-external-roots-function, or the current project implementation
> hasn't overridden project-vc-external-roots-function.
>
> "redo this process"? Which one?
The process of deciding which files and directories should be included in a
"project". If you use TAGS, you typically do that from an external script
cherry-picking directories and files. You don't want to do that a second
time using some other kind of project manager.
> Maybe I'm being naive, but a tags file (and presumably all other xref
>> backends) must represent a list of files. A free text search and
>> query-replace across those files would be very straight forward to
>> specify, wouldn't it?
>>
>
> An xref backend aims to represent the current coding environment; it could
> combine the source files in the current project, the library files external
> to the project (which could be compiled, zipped, etc), the information
> available in the currently running REPL.
>
> Yes, there probably is a list of files in there a backend could search,
> but it should be specified better than that. Search only inside source
> code, but not documentation, resources, etc? Including any external files
> that do not belong to this project (try imagining a different xref backend
> for C code; it would probably include the installed libraries)?
>
> And again, what do you see as the main advantage of the new command over
> project-or-external-find-regexp?
The advantage over `tags-search' (which I use today) is that I would be
able to use another, more powerful, underlying database. E.g. TAGS does not
manage references to objects whereas systems like "kythe" does.
Apart from that, I rather like the way etags handles search and query
replace -- incrementally and without opening a UI window.
I have given this some thought -- if we decide to really do make a
>> change, maybe we should try to make the xref search command more
>> isearch-like, so that a user could be able to continue an xref search
>> using `C-s' rather than `M-,'.
>>
>
> That doesn't sound clear to me at all. You mean pressing C-s in an xref
> buffer? The place where you can currently use `n', `p', or `,' and `.'?
>
> If you mean in a source buffer, what about next-error and previous-error?
>
I mean the source buffer. Yes, `next-error' is a good candidate. (It's key
binding is somewhat clumsy though, if you need to skip past several
matches.)
-- Anders
[-- Attachment #2: Type: text/html, Size: 5711 bytes --]
next prev parent reply other threads:[~2016-04-04 8:21 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
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 [this message]
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='CABr8ebYahZx5BRB0survbw5_4nXKo1nkGBa5V02R=9BU8uwp2g@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).