Hello list. The attached patch allows optional regexs to be passed to
:tj and friends. these regexs is then used to further refine available
tags before they are printed.
This patch is useful when you have many tags for a single identifier.
For example, suppose a large C++ project has initialize() methods for
100s of classes. Going through the list of tags printed by :tj is
tedious. Most of the time I know additional information about the
identifier I am looking for like the containing object type or source
filename. The text after the '/' in the argument is used as a regex
(unless a '/' is the first character of the tag identifier, then the
text after the second '/' is used) to match against the "other" tag
fields (which often contains the containing type name). If a '!' is
present, text after it is used to match against filenames. With this
patch you can type:
:tj initialize/SomeClass
to list all tags that also contain "SomeClass" in their "other" fields
or
:ts initialize/!arch/amd64
to list all tags matching initialize that contain "arch/amd64" in the
containing file's pathname. Or a mix:
:ts initialize/SomeClass!arch/amd64
The '/' and '!' characters were chosen somewhat arbitrarily--I'm not
sure if they are a safe choice.