Don't be disappointed if this takes a long time to be implemented, or if it is never implemented, though.
It would take considerable work to be implemented, and it would take considerable CPU time at runtime, too. It is easier for Microsoft to do that, because they only support one compiler architecture which has been designed for that purpose, too.
For us, it means that we would have to keep two copies of the text, filter it through the preprocessor (which requires executing an external process), and do a binary comparison of the two to figure out the differences (which is tough).
Or, we would have to create a pseudo-sourcefile on the fly that contains all preprocessor commands of the original and that conditionally enables/disables marker textblocks via the preprocessor (again, by launching an external process).
This would have to be done after every edit, unless we add a parser that detects whether a preprocessor directive was changed, too.