Thread: [Ctags] question on ctags...
Brought to you by:
dhiebert
From: Chapparam, S. (Sucharitha) <sch...@av...> - 2002-08-14 00:56:23
|
I'm looking for an option on ctags to append tags from specified files = to global tags file. there is --append=3Dyes option. but it is blindly = appending tags to the global tags file. I want something that replaces = previous tags with new tags. =20 for example, I have global tags file say gtags generated out of abc.c = def.c and xyz.c source files. Now I change something in abc.c and now I = want to replace previous tags of abc.c in gtags file with new ones. =20 appreciate any help I can get on this, thanks Sucharitha Chapparam Avaya Inc, 4120 Dublin Blvd, Dublin-94568 925-479-2644 sch...@av... =20 |
From: Darren H. <dhi...@us...> - 2002-08-14 03:53:16
|
On Tue, 13 Aug 2002, Chapparam, Sucharitha (Sucharitha) wrote: > I'm looking for an option on ctags to append tags from specified > files to global tags file. there is --append=yes option. but it is > blindly appending tags to the global tags file. I want something > that replaces previous tags with new tags. > > for example, I have global tags file say gtags generated out of > abc.c def.c and xyz.c source files. Now I change something in > abc.c and now I want to replace previous tags of abc.c in gtags > file with new ones. No, there is not such a capability currently existing in ctags. Ctags is very fast, so it is usually quick enough for all but the largest projects to regenerate the tag file periodically. For example, on my 650 MHz Athalon system, it takes 68 seconds of real time to generate a tag file for the entire Linux 2.4 kernel source tree (93 MB of source code, 5532 files). Note that approxmiately 10% of that time is taken by "sort" to sort the tag file. You can see that for a more typical project of 10 MB or source code or less, you are looking at less than 10 seconds to regenerate the entire tag file. However, tag file generation on Windows runs about 5 times longer under Windows than Linux. How important do people on this list feel that an update option to ctags would be (to refresh tags in the tag file for the listed files)? -- Darren Hiebert <dhi...@us...> http://DarrenHiebert.com |
From: Paul S. <pa...@to...> - 2002-08-14 04:22:17
|
Hello Darren, > [...] > How important do people on this list feel that an update option to > ctags would be (to refresh tags in the tag file for the listed files)? If the speed is as you have stated, there is hardly a need for the refreshing of the tags (and there is no reason to doubt it), since this will rather take time. If the tags are sorted by file name, it might be simple. One Windows-based ctag application keeps tag file for each file and updates whenever this is a change, the reason here being speed and support for incremental search (at the expense of physical memory). However, with the stated speed of the tag generation and the great tag reading interface (readtags), there is hardly a need for this. The readtags supports partial matching/searching option and could be used to implement the incremental search. Best regards, Paul. |
From: Darren H. <dhi...@us...> - 2002-08-14 05:13:10
|
On Wed, 14 Aug 2002, Paul Selormey wrote: > > How important do people on this list feel that an update option to > > ctags would be (to refresh tags in the tag file for the listed files)? > > If the speed is as you have stated, there is hardly a need for the > refreshing of the tags (and there is no reason to doubt it), since this will > rather take time. Undoubtedly. The entire tag file must be read, stripping out those lines whose files names match the file name(s) being updated and writing the result to a new file. Then add the tags for those same files in append mode and resort the tag file. Remove the old file and rename the new file to the old name. > If the tags are sorted by file name, it might be simple. Tags are sorted by tag name, since that is how they are looked up. -- Darren Hiebert <dhi...@us...> http://DarrenHiebert.com |
From: Paul S. <pa...@to...> - 2002-08-14 05:53:21
|
> Undoubtedly. The entire tag file must be read, stripping out those > lines whose files names match the file name(s) being updated and > writing the result to a new file. Then add the tags for those same > files in append mode and resort the tag file. Remove the old file > and rename the new file to the old name. Right, and could this be faster than regenerating the entire file? If this could be significantly faster, then there might be a need for this, and I may plead that this feature be added to the readtags! just in case someone finds it useful :-) > Tags are sorted by tag name, since that is how they are looked up. Naturally :-) Best regards, Paul. |