In the code base I'm currently developing under there's a macro for a string declaration type along the lines of:
#ifndef TYPE_I
#define TYPE_D(name,value) extern const mylibstring name(value);
#endif
SE didn't parse this so anywhere I saw "name" used it would appear as an error in the color syntax parser. I finally got frustrated enough (going through a large table of these values) that I got off my lazy butt to add it to the preprocessor via Tools | Options | Languages | Application Languages | C/C++ | C/C++ Preprocessing. (Ahh, much better).
My question-
This appears to be an editor-wide setting, not a project setting. Is there a way to specify this in the project's options? This macro is only used in this project and I'd hate to have it "pollute" all my workspaces, let alone what I do if I run into a similarly named macro with a wholly different definition in another project.
(Bonus question!) SE did recognize the macro definition (auto-completing it as I typed it into the New Define form), so it was properly tagged. I assume this was still omitted from Context Tagging(r) because of the performance concerns? I can sort of understand that but it seems odd that SE recognizes it, parsed it, but won't actually do it unless I manually enter the exact definition into the table which SE already recognizes. Perhaps (if there's no per project preprocessor tagging) there could be a per project form that lists the macros/defines not preprocessed and the ones we want to be forcibly processed could be moved onto the forced list? (Sort of like the associated file types form?)