[...]
Only thing left out is how there's a separate struct for each set of function types, like `DocumentFuncs`, and `SciFuncs`, and so on, which are themselves members of a the `GeanyFunctions` struct. Just to add a little more detail.
Like all the best text books say, discovering this and explaining why is left as an exercise for the reader :-) [...]
Cheers Lex