Mike Lischke:
> I'm a bit confused. Didn't we have a discussion not so long ago about removing the namespace altogether? Or do I remember that wrongly?
The namespace was removed from the client interface to Scintilla, which is defined as a ‘C’ language interface. That change did not affect internal use of the Scintilla namespace.
While the Scintilla namespace is internal, Scintilla could be seen as having 3 interfaces: client, platform layer, and lexer. The original purpose of the namespace was to help with the platform layer interface but it is also used by the lexer interface and was available in the past for the client interface.
Future work could modularize Scintilla better, perhaps by splitting off lexers and platform layers into separate projects with better defined interfaces. The platform layer interface is currently very wide with many changes to core requiring changes to each platform layer. Separate namespaces (perhaps nested as Scintilla::Lexer, Scintilla::Platform, and Scintilla::Core or using a different naming scheme) could be used to clearly mark these module boundaries.
Neil