一个班轮:我正在寻找“分层”标签文件设置,而如果global
找不到TAGSDB
目录中的GTAGSDBPATH
,那么它会爬上目录链,直到找到另一个。
长衬垫:
我有这个项目文件结构
/vob/project-name/src/
==>项目src目录的ROOT
在此目录下有以下子目录:
./utils
,./common
,./iplib
,./ipv6lib
,./subsystem1
,./subsystem2
等
我在subsystem1
大标签文件很大。
我有..
setenv GTAGSROOT /vobs/project-name/src
setenv GTAGSDBPATH /vobs/project-name/src
这需要40分钟才能建成。
我在./subsystem1/sre
目前我有两个shell文件:
toptags:
setenv GTAGSROOT /vobs/project-name/src
setenv GTAGSDBPATH /vobs/project-name/src
bottomtags:
setenv GTAGSROOT /vobs/project-name/src/subsystem1/src
setenv GTAGSDBPATH /vobs/project-name/src/subsystem1/src
通过这种方式,我可以很少地构建TOP项目文件,并且偶尔也可以构建底部标记,因为流失的地方就在那里。
此外,目前,当我执行(setq ggtags-update-on-save nil)
时,每次我写一个文件时,会产生三个不会死的进程。我收到了一封关于系统管理员的严厉电子邮件,要求保留150个流程。
答案 0 :(得分:1)
locate-dominating-file
正是您所需要的。
(locate-dominating-file default-directory GTAGS-FILE-NAME)
将为您提供包含名为GTAGS-FILE-NAME
的文件的最近的封闭目录的名称,如果没有此类目录,则为nil
。