Maintaining cross-reference in programs using (c)tags

A feature that appealed to me at some point was that you could generate a file with references between different program files in the same repository, so that you can easily navigate with eg. VIm.

Not much used (any more) because I find it too much work and fits badly with how I currently work (many files open at the same time versus opening a reference in the same file).

I made the following commands:

tags.build [<repos>]

build tags file for repository (by name or ".")

tags.check [<repos>]

check if rebuilding tags file is necessary

tags.update [<repos>]

rebuild tags file for repository (by name or ".") if necessary