Subject: bug#67687: Feature request: automatic tags management

From: Eli Zaretskii <[email-masked]>
Date: Thu, 21 Dec 2023 09:40:09 +0200

> Date: Thu, 21 Dec 2023 02:24:01 +0200
> Cc: [email-masked]
> From: Dmitry Gutov <[email-masked]>
> 
> That is a good sign (with another positive bit of feedback on Reddit 
> yesterday), so I think it's time to ask the head maintainers what they 
> think about the inclusion of this feature in the core now.
> 
> Eli/Stefan?

I didn't hear about any disadvantages; are there any issues we need to
consider?

Does the etags test suite still pass after these changes?

Some comments based on a superficial look at the branch:

  . there are no updates for NEWS and the Emacs manual
  . the doc string of etags-regen-mode should explain more about what
    it does
  . the new -L switch to etags is not mentioned in --help and in the
    man page of etags
  . defcustoms don't have a :version tag
  . etags-regen-lang-regexp-alist could have a shorter name:
    etags-regen-regexp-alist, and its doc string should describe the
    form of the alist
  . in the safe-local-variable form of etags-regen-lang-regexp-alist,
    why do we force the language name to match a certain regexp, and
    likewise with extensions in etags-regen-file-extensions?
  . the shell command in etags-regen--all-mtimes is non-portable: it
    needs xargs and stat commands; please use
    directory-files-recursively with file-attributes instead, at least
    as fallback
  . I see several FIXMEs and TODOs in the code
  . I wonder whether we should make sure etags supports the new -L
    switch, and signal an error if not -- since you invoke etags
    via PATH, it is quite possible to invoke an older version, the one
    installed on the system, and not the one in the repository, as
    long as Emacs 30 is not installed
  . why does etags-regen--tags-generate require 'dired?
  . why do we have to use advice-add/remove in etags-regen-mode? can't
    we add hooks to the relevant functions instead?
  . you are removing a project-files method from project.el -- isn't
    that backward-incompatible?

Thanks.