There is synhighlightercpp for C++ highlighting. However, it doesn't have folding.
There are several highlighters with folding by now. I would say synhighlighterlfm is the easiest to read. So that could serve as example.
(Get)FoldConfig* methods are *not* mandatory. folding will work without them. It's only for the IDE, to be able to switch on/off individual kinds of fold.
Otherwise, best is to ask concrete questions.
There are also one or two (literally only one or two) remarks in the docs folder, xml
---
First step would be to move the existing (or modified copy) under the foldhighlighter base class.
Main issue I can think of is the "range" (search in SetLine / search fRange). This may be an int, or a set. But in fold, it is an object.
The object provides a space (pointer, need typecast) for the old range.
Then if thats working, you can go about adding the calls to Start/EndCodeFoldBlock