Looks ok to me. Not thrilled about the } // namespace
way of finding namespace closing brackets, but can't think of a better way to do it, short of actually parsing C/C++ code.
Technically i think this should be ([\w:]*)
to also match namespace{
. Our formatting makes sure there is always whitespace but i don't think we want to rely on that.
The interface definition uses the same range callbacks as node sockets, but gets defined in a different compilation unit, so they need to be exposed.
This was removed in an earlier commit, but interfaces use it to create selectable socket type buttons. The previous interface implementation used an operator with its own enum for this purpose, but the new interface can do this with a regular property.
"Blend File"? "blend File"? ".blend File"?
If we want to be pedantic ...