Yes, you can use the regex-based mode, but the difference in quality/helpfulness is pretty noticable. You get way more useful semantic info with supported languages like C/C++ and Python. Perhaps a few examples might help.
I use the vim-tagbar pluggin, which uses ctags. Here is what I get with Python:
Notice that we have classes and methods, imports, and even some privacy information.
Here is what I get for C++:
Notice that we have
- nesting of types within namespaces
- privacy info
- grouping of fields, methods, typedefs, etc
- type info
Here is what I get with Rust:
- No type, privacy, or namespacing info
- No nesting of definitions. For example notice that
deref
is not listed underimpl Deref for E820Info
. If there were multiple implementations ofDeref
in this file, they would all be listed one after the other underfunctions
. - The
types
andconstant
section also list associated items (e.g.Target
is the associated type ofDeref
. - Two of the constants are actually not
const
. Rather, they areextern static
.
This view does not help me understand the layout of the code in this file at all. It also doesn't give a concise view of what fields, methods, etc each type or trait has. It doesn't have any notion of privacy or namespacing.