]> git.eshelyaron.com Git - emacs.git/commit
* lisp/multifile.el: New file, extracted from etags.el
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 22 Sep 2018 15:46:35 +0000 (11:46 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 22 Sep 2018 15:46:35 +0000 (11:46 -0400)
commit55ec674f5090f420c8982f5206e6566b5a664340
treee38d5ca4c650db8ed0704ae9d20f3e935af89b05
parent3727bc7d599c24715a66de3e899a82b6f07d1aac
* lisp/multifile.el: New file, extracted from etags.el

The main motivation for this change was the introduction of
project-query-replace.  dired's multi-file query&replace was implemented
on top of etags.el even though it did not use TAGS in any way, so I moved
this generic multifile code into its own package, with a nicer interface,
and then used that in project.el.

* lisp/progmodes/project.el (project-files): New generic function.
(project-search, project-query-replace): New commands.

* lisp/dired-aux.el (dired-do-search, dired-do-query-replace-regexp):
Use multifile.el instead of etags.el.

* lisp/progmodes/etags.el: Remove redundant :groups.
(next-file-list): Remove var.
(tags-loop-revert-buffers): Make it an obsolete alias.
(next-file): Don't autoload (it can't do anything useful before some
other etags.el function setup the multifile operation).
(tags--all-files): New function, extracted from next-file.
(tags-next-file): Rename from next-file.
Rewrite using tags--all-files and multifile-next-file.
(next-file): Keep it as an obsolete alias.
(tags-loop-operate, tags-loop-scan): Mark as obsolete.
(tags--compat-files, tags--compat-initialize): New function.
(tags-loop-continue): Rewrite using multifile-continue.  Mark as obsolete.
(tags--last-search-operate-function): New var.
(tags-search, tags-query-replace): Rewrite using multifile.el.

* lisp/emacs-lisp/generator.el (iter-end-of-sequence): Use 'define-error'.
(iter-make): New macro.
(iter-empty): New iterator.

* lisp/menu-bar.el (menu-bar-search-menu, menu-bar-replace-menu):
tags-loop-continue -> multifile-continue.
lisp/dired-aux.el
lisp/emacs-lisp/generator.el
lisp/multifile.el [new file with mode: 0644]
lisp/progmodes/etags.el
lisp/progmodes/project.el