Example #1
0
 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);
     }
 }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
                }
            }
        }
Example #4
0
        /// <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;
 }