I can understand your frustration. This topic has been a sore spot for many developers over the years and it doesn't help that our configuration implementation is like spaghetti and our documentation is thin.
Assuming you wanted to copy the standard C# configuration and make some changes, here is what you need to do.
The standard C# configuration file is found in the \ScintillaNET\Configuration\Builtin\cs.xml file in source control. Copy that file to your application bin folder and rename it. For this example, we'll rename it to zyx.xml.
In the zyx.xml file, change the Name attribute of the Language node to "zyx". Your XML file should now look like this:
<?xml version="1.0" encoding="utf-8"?>
<!-- omitted -->
NOTE: I've omitted nearly all of the document for brevity.
The value of the Name attribute corresponds to the ConfigurationManager.Language property (see below) and they have to match.
In your code, you can now enable your custom configuration by doing the following:
scintilla.Lexing.LexerLanguageMap["zyx"] = "cpp";
scintilla.ConfigurationManager.CustomLocation = Environment.CurrentDirectory;
scintilla.ConfigurationManager.Language = "zyx";
The first line defines a language-to-lexer mapping. Scintilla has no built in lexer named "zyx" but we know that it is similar to C# so we can use the C++ lexer. If we don't tell Scintilla how to map our configuration to a lexer we won't get syntax highlighting.
What confuses so many people is that ScintillaNET has a built in mapping by default from "cs" (C#) to "cpp" (C++). That explains why languages called "cs" always seem to work but others do not.
The second line informs ScintillaNET where to look for custom configuration files. This is not normally checked by default and since we put our zyx.xml file in our application bin we need to tell ScintillaNET to look for it there.
The last line puts it all together and loads our configuration. The Language property value is "zyx" because that's what we specified in the Name attribute of the Language node in our XML file above. If those don't match ScintillaNET will simply ignore your
Hopefully that helps.