Many C++ applications create infrastructure in classes that can be ignored during most usage of the class. Usually this is accomplished by a macro that injects declarations (for example, many classes written for Qt require a Q_OBJECT macro in their declaration.) When working with such classes, the listing of infrastructure members distracts from the 'real' members of the class, and make learning/understanding the code harder.
If Visual Assist parsed all code with a special symbol defined (say, _VISUAL_ASSIST_ or something more generic like _PARSING_FOR_NAVIGATION_) then code could be written in such a way that uninteresting infrastructure could be hidden. For example, it would be nice to be able to write code as follows so the 'ugly guts' of the class don't pollute Visual Assist:
#ifdef _VISUAL_ASSIST_
#define UGLY_GUTS( CLASSNAME ) // Hide this from Visual Assist
#else
#define UGLY_GUTS( CLASSNAME ) private: static CGuts<CLASSNAME> CLASSNAME_Guts;
#endif
class CMyClass
{
UGLY_GUTS( CMyClass );
public:
int GetValue();
private:
int m_nValue;
};
This would need to be a toggleable feature, since sometimes you do care about the guts. (Ideally the Visual Assist popup could have a subtle indicator that there are hidden members that you could click to show them.)
It might also make more sense to use a special comment string like //%%IGNORE_FOR_VISUAL_ASSIST%% rather than a special #define symbol.