** New global minor mode ‘etags-regen-mode’.
This minor mode generates the tags table automatically based on the
current project configuration, and later updates it as you edit the
files and save the changes.
以前在 Emacs 里使用 etags 非常麻烦:
- 需要自己封装
etags
命令生成 TAGS - 需要为不同的项目,维护扩展名列表,包括 ignore list
- 代码修改后,需要手动刷新 TAGS
- 或引入第三方库,比如: ggtags
Emacs 30.1 增加了一个新的 minor mode,支持开箱即用。
使用方法:
- init.el
(setq etags-regen-program "etags") ;你的 etags 可执行程序路径 (require 'etags-regen)
- 配置项目 .dir-locals.el
- 比如:
((c-mode . ((etags-regen-file-extensions . ("h" "c")))))
- 比如:
- 启用
etags-regen-mode
- 当
xref-find-definitions
时,会自动生成 TAGS - 当
save-buffer
时,会自动更新 TAGS
经测试,etags-regen-mode 兼容 Emacs 29.3,只要把 etags-regen-mode.el 拷贝到 load-path
.