Sbexr is a small C++ binary that uses LLVM and CLANG to build a browsable version of your C or C++ code and an index to search stuff in it.
Differently from many other similar tools, this means that sbexr can parse your C and C++ code as well as your compiler, which in turn means:
It has an almost perfect view of what is a variable, class, method, object, and so on. It knows if variables are local, global, static, ...
It has to know the exact flags to build your code, and your code has to be compilable for it to be indexable. But that's easy, see below.
It can perform some tasks typical of static analsyis tools. For example, there are at least two functionalities that are work in progress: block guards highlighting, and function pointer tracking. The former to highlight functions and pieces of code that are run within the range of two functions/methods, which can be used, for example, to highlight code and functions run under a lock / rcu / ... The latter to find out all functions that are ever assigned into a function pointer field of a struct, useful to track abstractions and "virtual methods" in plain old C.
It is written with modern and hipster technologies. While C++ is no longer cool nowdays, the index can be served with a simple JSON rest API offered to you by a golang server. Integrating it in your own web site (or vim, or $random_tool, for autocompletion, for example) should be a joke to any hacker like you.