Originally, this functionality was incorporated inside Scintilla. It has been extracted as a separate project to make it easier for contributors to work on support for new languages and to fix bugs in existing lexers. It also defines a protocol where projects can implement their own lexers and distribute them as they wish.