<...deleted...>
Also, It seems the patch is against debugger_branch.
No, I always merge with trunk. but I'm watching the debugger branch too.
1.) Why exactly are you using the scripting engine? I didn't get the reason for that from a quick look. This surely makes the processing (of whatever) quite slow.
2.) You are accessing UI controls out of the parser thread (ParserThread::PreprocessorStyling). This will surely lead into a crash sooner or later. Why are you doing so?
Yes, scripting engine will slow down parsing, but it's result will guide CC to override some unnecessary parsing, it's worthy.
The PreprocessorStryling() is activated only under ParseBuffer* , so far, these series are called only from main thread. So it's safe for now.
<...>
This is the question I would like to ask either.
I'm not fully understand the whole code, but it seems the author use the Sq script engine to evaluate the #if condition's value.
If that's all he uses scripting for, my template abusive implementation of a preprocessor has the code to evaluate that in the file constexprevaluator.h.
<...>
Yes, that's all I use scripting for.
finally, something needs more description,
It needs reparsing 2~4 times when the project is the first time to load.
After batch parsing(reparsing), it will (re)produce a <proj>.ccdepend file.
It just calculate the 'header file' dependency, not macro, it does not maintain a exact define-use chain.