Consider the code:
void simpleTestFunction()
{
#if OS_LINUX
// inactive code under windows
// VA is still active here
#endif
}
VA parses the code inside the #if #endif block, and helps you write code in there. This is by design. We are treating a #if 0 #endif block the same way.
If you really do not want the code inside the #if 0 #endif block at all you will delete it. Since it is still in the file, it must be there for a reason. You might simply be using #if 0 #endif as a debugging tool, to disable code while you work out what is causing a problem. In which case, having VA active and helpful inside this block is helping you. To be active we have to parse the code.