internal static TmSnippet ReadSnippet(Stream stream) { var dict = PDictionary.FromStream(stream); string name = null; string content = null; string tabTrigger = null; var scopes = new List <StackMatchExpression> (); PObject val; if (dict.TryGetValue("name", out val)) { name = ((PString)val).Value; } if (dict.TryGetValue("content", out val)) { content = ((PString)val).Value; } if (dict.TryGetValue("tabTrigger", out val)) { tabTrigger = ((PString)val).Value; } if (dict.TryGetValue("scope", out val)) { foreach (var scope in ((PString)val).Value.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { scopes.Add(StackMatchExpression.Parse(scope)); } } return(new TmSnippet(name, scopes, content, tabTrigger)); }
internal static TmSetting ReadPreferences(PDictionary dict) { string name = null; var scopes = new List <StackMatchExpression> (); var settings = new Dictionary <string, PObject> (); PObject val; if (dict.TryGetValue("name", out val)) { name = ((PString)val).Value; } if (dict.TryGetValue("scope", out val)) { foreach (var scope in ((PString)val).Value.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { scopes.Add(StackMatchExpression.Parse(scope)); } } if (dict.TryGetValue("settings", out val)) { var settingsDictionary = val as PDictionary; foreach (var setting in settingsDictionary) { settings.Add(setting.Key, setting.Value); } } return(new TmSetting(name, scopes, settings)); }
internal ThemeSetting(string name, IReadOnlyList <string> scopes, IReadOnlyDictionary <string, string> settings) { Name = name; var s = new List <StackMatchExpression> (); if (scopes != null) { foreach (var str in scopes) { s.Add(StackMatchExpression.Parse(str)); } } this.scopes = s; this.settings = settings ?? new Dictionary <string, string> (); }
internal static TmSnippet ReadSnippet(Stream stream) { string name = null; string content = null; string tabTrigger = null; var scopes = new List <StackMatchExpression> (); using (var reader = XmlReader.Create(stream)) { while (reader.Read()) { if (reader.NodeType != XmlNodeType.Element) { continue; } switch (reader.LocalName) { case "content": if (reader.Read()) { content = reader.Value; } break; case "tabTrigger": if (reader.Read()) { tabTrigger = reader.Value; } break; case "scope": if (reader.Read()) { scopes.Add(StackMatchExpression.Parse(reader.Value)); } break; case "description": if (reader.Read()) { name = reader.Value; } break; } } } return(new TmSnippet(name, scopes, content, tabTrigger)); }