/* Function: MergeLanguageInto * Merges the settings of a <ConfigFiles.TextFileLanguage> into another one, overriding the settings of the first. This does * NOT cover file extensions, aliases, or shebang strings. The base object will be altered. */ protected void MergeLanguageInto(ref ConfigFiles.TextFileLanguage baseLanguage, ConfigFiles.TextFileLanguage overridingLanguage) { // Leave Name and PropertyLocation alone. We'll keep the base's. // Leave AlterLanguage alone. The base should be false and the overriding should be true, and we want the end // result to be false. if (overridingLanguage.HasSimpleIdentifier) { baseLanguage.SetSimpleIdentifier(overridingLanguage.SimpleIdentifier, overridingLanguage.SimpleIdentifierPropertyLocation); } // Ignore Aliases // Ignore FileExtensions // Ignore ShebangStrings if (overridingLanguage.HasLineCommentSymbols) { baseLanguage.SetLineCommentSymbols(overridingLanguage.LineCommentSymbols, overridingLanguage.LineCommentSymbolsPropertyLocation); } if (overridingLanguage.HasBlockCommentSymbols) { baseLanguage.SetBlockCommentSymbols(overridingLanguage.BlockCommentSymbols, overridingLanguage.BlockCommentSymbolsPropertyLocation); } if (overridingLanguage.HasMemberOperator) { baseLanguage.SetMemberOperator(overridingLanguage.MemberOperator, overridingLanguage.MemberOperatorPropertyLocation); } if (overridingLanguage.HasPrototypeEnders) { foreach (var prototypeEnders in overridingLanguage.PrototypeEnders) { // This will automatically overwrite any ender with the same comment type. baseLanguage.AddPrototypeEnders(prototypeEnders); } } if (overridingLanguage.HasLineExtender) { baseLanguage.SetLineExtender(overridingLanguage.LineExtender, overridingLanguage.LineExtenderPropertyLocation); } if (overridingLanguage.HasEnumValues) { baseLanguage.SetEnumValues(overridingLanguage.EnumValues, overridingLanguage.EnumValuesPropertyLocation); } if (overridingLanguage.HasCaseSensitive) { baseLanguage.SetCaseSensitive(overridingLanguage.CaseSensitive, overridingLanguage.CaseSensitivePropertyLocation); } }