emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Generation of tags for the current project on the fly


From: Dmitry Gutov
Subject: Re: Generation of tags for the current project on the fly
Date: Fri, 19 Jan 2018 04:21:05 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Thunderbird/58.0

On 1/18/18 03:14, Dmitry Gutov wrote:

Dmitry> I'm sure it would be helpful, even if only to study the approach.

I pushed it to feature/etags-update.

Thanks! I'll do some benchmarking if nobody beats me to it.

The first result: 'make tags' never finishes with that version. Here's the last output before it's stuck:

../lib-src/etags --include=../lisp/TAGS --include=../lwlib/TAGS \
  --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/\1/' \
  --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"[^"]+",[     
]\([A-Za-z0-9_]+\)/\1/' \
  ./character.c <...many lines here...> ./systime.h \
  --regex='{objc}/[     ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/\1/' \
--regex='{objc}/[ ]*DEFVAR_[A-Z_ (]+"[^"]+",[ ]\([A-Za-z0-9_]+\)/\1/' \ ./macfont.m ./nsfont.m ./nsmenu.m ./nsterm.m ./nsselect.m ./nsfns.m ./nsimage.m

Tried it several times, including after 'make bootstrap'.

And here's another way to make it freeze:

find . -name "*.[ch]" | lib-src/etags - -o TAGS

(But both *.c and *.h finish okay separately).

Other than that:

1. '-u' doesn't seem to be statistically significantly slower than without (good), but maybe I haven't tested large enough repos.

2. Not sure I understand how .etags works. How do I tell it to only index *.c files? Any presence of wildcard ignore (!*) makes 'etags --find' index nothing.

3. 'lib-src/etags src/category.c -u -o TAGS' results in having only that file's tags inside TAGS (before, it contained the entries for all .c files). This behavior contradicts the help and stops the rest of my testing in its tracks.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]