Scintilla semantic styling (keywords, types, and the rest) for names is global
Then Geany should not tell Scintilla to highlight local type names.
final and override are only keywords in specific contexts
Seems like they aren't keywords in the Scintilla sense.
if there tags are loaded local variables of the same name are shown by Scintilla as types.
Maybe too difficult for Scintilla to fix?
Can't follow includes
C++ 20 has modules (only 45 years late!). Not sure how much work it is for C++ projects to switch to modules? Although compiler support might not be there yet. The preprocessor is the source of so many headaches with parsing. I expect supporting modules would be much more straightforward than supporting includes.
--- A LSP does sound like the way to go for all things related to parsing, though I'm not sure that syntax highlighting needs to be too sophisticated. The latter means we can stick with Scintilla.
One thing that would be good is to support an external ctags program - that way e.g. I could use the official dtags program written in D without making Geany depend on a D compiler. That would greatly improve parsing from either geany_c.c's support or uctags.