private static void DoSetStdGlobs(Settings settings) { foreach (string glob in settings.Globs) { if (!ms_stdGlobs.ContainsKey(glob)) ms_stdGlobs[glob] = settings.Name; else DoWriteError("Both {0} and {1} use glob {2}.", settings.Name, ms_stdGlobs[glob], glob); } }
private static void DoProcessLine(string file, string line, int lineNumber, Settings settings, List<KeyValuePair<string, string>> elements) { if (line.StartsWith("#")) { // do nothing } else if (char.IsWhiteSpace(line[0])) { if (!line.IsNullOrWhiteSpace()) DoWriteError("{0}:{1} starts with whitespace but is not a blank line.", file, lineNumber); } else { int i = line.IndexOf(':'); if (i > 0) { string element = line.Substring(0, i); // note that element names can appear multiple times (for alternatives) string value = line.Substring(i + 1); value = value.Replace("\\#", Constants.Replacement); int j = value.IndexOf('#'); // lines may have comments if (j > 0) value = value.Substring(0, j); value = value.Replace(Constants.Replacement, "#"); if (element == "Language") if (settings.Name == null) settings.Name = value.Trim(); else DoWriteError("{0} has more than one Language setting.", file); else if (element == "Globs") if (settings.Globs.Length == 0) settings.Globs = value.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries); else DoWriteError("{0} has more than one Globs setting.", file); else if (element == "Word") settings.Word += value.Trim() + "\t"; else if (element == "LineComment") settings.LineComment = value.Trim().Replace("\\x23", "#"); else if (element == "Shebangs") settings.Shebangs += value.Trim() + " "; else if (element == "IgnoreWhitespace") settings.IgnoreWhitespace = value.Trim(); else if (element == "SpacesNotTabs") settings.SpacesNotTabs = value.Trim(); else if (element == "TabStops") if (settings.TabStops == null) settings.TabStops = value.Trim(); else DoWriteError("{0} has more than one TabStops setting.", file); else elements.Add(new KeyValuePair<string, string>(element, value.Trim())); } else { DoWriteError("Expected a colon in {0}:{1}.", file, lineNumber); } } }
private static void DoLoadLanguages(string languagesPath) { foreach (string path in Directory.GetFiles(languagesPath, "*.lang")) { try { string[] lines = File.ReadAllLines(path); string file = Path.GetFileName(path); var settings = new Settings(); var elements = new List<KeyValuePair<string, string>>(); // list because we need to preserve the ordering for (int i = 0; i < lines.Length; ++ i) { string line = lines[i]; if (line.Length > 0) DoProcessLine(file, line, i + 1, settings, elements); } if (settings.Name != null) { if (!ms_languages.ContainsKey(settings.Name)) { ms_languages[settings.Name] = new Language(path, settings, elements); DoSetStdGlobs(settings); } else { DoWriteError("Language {0} was declared in both {1} and {1}", settings.Name, path, ms_languages[settings.Name].Path); } } else { DoWriteError("Missing Language setting in {0}", file); } } catch (Exception e) { DoWriteError("Failed to parse '{0}':", path); DoWriteError(e.Message); } } }
/// <summary> /// Fetched the gamespeed from DB and updates the globalsupport /// </summary> private void SetGameSpeed() { Settings settings = codeDatabase.SelectFirst<Settings>(); if (settings == null) { settings = new Settings(); settings.GameSpeed = 1000; codeDatabase.Insert(settings); } GlobalSupport.GameSpeed = settings.GameSpeed; }
/// <summary> /// Updates the database with the options. /// </summary> /// <param name="speed">Speed.</param> /// <created>Stef Chappin</created> private void updateDatabase(int speed) { DataBase db = DataBase.Instance(); Settings settings = db.SelectFirst<Settings>(); if (settings != null) { settings.GameSpeed = speed; db.Update(settings); } else { settings = new Settings(); settings.GameSpeed = speed; db.Update(settings); } GlobalSupport.GameSpeed = settings.GameSpeed; }
/// <summary> /// Fetched the gamespeed from DB and updates the globalsupport /// </summary> private void SetGameSpeed() { DataBase db = DataBase.Instance(); Settings settings = db.SelectFirst<Settings>(); if (settings == null) { settings = new Settings(); settings.GameSpeed = 1000; db.Insert(settings); } GlobalSupport.GameSpeed = settings.GameSpeed; }