public void Configure()
{
if (Scintilla.IsDesignMode || Scintilla.IsInitializing)
return;
Configuration builtInDefault = null,
builtInLang = null,
customDefault = null,
customLang = null,
userDefault = null,
userLang = null;
if (this._isBuiltInEnabled)
{
using (Stream s = GetType().Assembly.GetManifestResourceStream("ARCed.Scintilla.Configuration.Builtin.default.xml"))
builtInDefault = new Configuration(s, "default", this._useXmlReader);
if (!string.IsNullOrEmpty(this._language))
using (Stream s = GetType().Assembly.GetManifestResourceStream("ARCed.Scintilla.Configuration.Builtin." + this._language + ".xml"))
if (s != null)
builtInLang = new Configuration(s, this._language, this._useXmlReader);
}
if (this._isUserEnabled)
{
string defPath = Path.Combine(this.UserFolder, "default.xml");
if (File.Exists(defPath))
userDefault = new Configuration(defPath, "default", this._useXmlReader);
if (!string.IsNullOrEmpty(this._language))
{
string langPath = Path.Combine(this.UserFolder, this._language + ".xml");
if (File.Exists(langPath))
userLang = new Configuration(langPath, this._language, this._useXmlReader);
}
}
if (!string.IsNullOrEmpty(this._customLocation))
{
string customDefaultPath = this.GetCustomConfigPath("default");
string customLanguagePath = this.GetCustomConfigPath(this._language);
if (!string.IsNullOrEmpty(customDefaultPath))
customDefault = new Configuration(customDefaultPath, "default", this._useXmlReader);
if (!string.IsNullOrEmpty(customLanguagePath))
customLang = new Configuration(customLanguagePath, this._language, this._useXmlReader);
else
throw new FileNotFoundException("Could not find the custom configuration file.", this._customLocation);
}
var configList = new List<Configuration>();
if (this._loadOrder == ConfigurationLoadOrder.BuiltInCustomUser)
{
if (builtInDefault != null && builtInDefault.HasData)
configList.Add(builtInDefault);
if (builtInLang != null && builtInLang.HasData)
configList.Add(builtInLang);
if (customDefault != null && customDefault.HasData)
configList.Add(customDefault);
if (customLang != null && customLang.HasData)
configList.Add(customLang);
if (userDefault != null && userDefault.HasData)
configList.Add(userDefault);
if (userLang != null && userLang.HasData)
configList.Add(userLang);
}
else if (this._loadOrder == ConfigurationLoadOrder.BuiltInUserCustom)
{
if (builtInDefault != null && builtInDefault.HasData)
configList.Add(builtInDefault);
if (builtInLang != null && builtInLang.HasData)
configList.Add(builtInLang);
if (userDefault != null && userDefault.HasData)
configList.Add(userDefault);
if (userLang != null && userLang.HasData)
configList.Add(userLang);
if (customDefault != null && customDefault.HasData)
configList.Add(customDefault);
if (customLang != null && customLang.HasData)
configList.Add(customLang);
}
else if (this._loadOrder == ConfigurationLoadOrder.CustomBuiltInUser)
{
if (customDefault != null && customDefault.HasData)
configList.Add(customDefault);
if (customLang != null && customLang.HasData)
configList.Add(customLang);
if (builtInDefault != null && builtInDefault.HasData)
configList.Add(builtInDefault);
if (builtInLang != null && builtInLang.HasData)
configList.Add(builtInLang);
if (userDefault != null && userDefault.HasData)
configList.Add(userDefault);
if (userLang != null && userLang.HasData)
configList.Add(userLang);
}
else if (this._loadOrder == ConfigurationLoadOrder.CustomUserBuiltIn)
{
if (customDefault != null && customDefault.HasData)
configList.Add(customDefault);
if (customLang != null && customLang.HasData)
configList.Add(customLang);
if (userDefault != null && userDefault.HasData)
configList.Add(userDefault);
if (userLang != null && userLang.HasData)
configList.Add(userLang);
if (builtInDefault != null && builtInDefault.HasData)
configList.Add(builtInDefault);
if (builtInLang != null && builtInLang.HasData)
configList.Add(builtInLang);
}
else if (this._loadOrder == ConfigurationLoadOrder.UserBuiltInCustom)
{
if (userDefault != null && userDefault.HasData)
configList.Add(userDefault);
if (userLang != null && userLang.HasData)
configList.Add(userLang);
if (builtInDefault != null && builtInDefault.HasData)
configList.Add(builtInDefault);
if (builtInLang != null && builtInLang.HasData)
configList.Add(builtInLang);
if (customDefault != null && customDefault.HasData)
configList.Add(customDefault);
if (customLang != null && customLang.HasData)
configList.Add(customLang);
}
else if (this._loadOrder == ConfigurationLoadOrder.UserCustomBuiltIn)
{
if (userDefault != null && userDefault.HasData)
configList.Add(userDefault);
if (userLang != null && userLang.HasData)
configList.Add(userLang);
if (customDefault != null && customDefault.HasData)
configList.Add(customDefault);
if (customLang != null && customLang.HasData)
configList.Add(customLang);
if (builtInDefault != null && builtInDefault.HasData)
configList.Add(builtInDefault);
if (builtInLang != null && builtInLang.HasData)
configList.Add(builtInLang);
}
Configure(configList);
}