internal void Merge(Ignores ignore) { Extensions = SafeMerge(Extensions, ignore.Extensions); FilePatterns = SafeMerge(FilePatterns, ignore.FilePatterns); DirectoryPatterns = SafeMerge(DirectoryPatterns, ignore.DirectoryPatterns); Patterns = SafeMerge(Patterns, ignore.Patterns); }
public Directives() { Ignore = new Ignores(); Externals = new Dictionary<string, Extern>(); }
internal void Merge(Ignores ignore) { if (ignore.Extensions != null) Extensions = Extensions.Concat(ignore.Extensions).ToArray(); if (ignore.RegexFilePatterns != null) RegexFilePatterns = RegexFilePatterns.Concat(ignore.RegexFilePatterns).ToArray(); if (ignore.RegexDirectoryPatterns != null) RegexDirectoryPatterns = RegexDirectoryPatterns.Concat(ignore.RegexDirectoryPatterns).ToArray(); if (ignore.Directories != null) Directories = Directories.Concat(ignore.Directories).ToArray(); }
public Directives(JsonReader reader) { Ignore = new Ignores(); Externals = new Dictionary <string, Extern>(); string currentProperty = null; while (reader.Read()) { switch (reader.TokenType) { case JsonToken.PropertyName: currentProperty = reader.Value.ToString(); break; case JsonToken.String: switch (currentProperty) { case "DefaultCompression": DefaultCompression = reader.Value.ToString(); break; case "ExternalMerge": ExternalMerge = reader.Value.ToString(); break; case "ExternalMerge2Way": ExternalMerge2Way = reader.Value.ToString(); break; case "ExternalDiff": ExternalDiff = reader.Value.ToString(); break; case "UserName": UserName = reader.Value.ToString(); break; case "ObjectStorePath": ObjectStorePath = reader.Value.ToString(); break; default: Tokens[currentProperty] = Newtonsoft.Json.Linq.JToken.FromObject(reader.Value); break; } break; case JsonToken.Boolean: if (currentProperty == "NonBlockingDiff") { NonBlockingDiff = System.Boolean.Parse(reader.Value.ToString()); } else if (currentProperty == "UseTortoiseMerge") { UseTortoiseMerge = System.Boolean.Parse(reader.Value.ToString()); } else { Tokens[currentProperty] = Newtonsoft.Json.Linq.JToken.FromObject(reader.Value); } break; case JsonToken.EndObject: return; case JsonToken.StartObject: if (currentProperty == "Ignore") { Ignore = new Ignores(reader); } else if (currentProperty == "Include") { Include = new Ignores(reader); } else if (currentProperty == "Svn") { Svn = new SvnCompatibility(reader); } else if (currentProperty == "Externals") { Externals = new Dictionary <string, Extern>(); while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName) { currentProperty = reader.Value.ToString(); } else if (reader.TokenType == JsonToken.StartObject) { Externals[currentProperty] = new Extern(reader); } else if (reader.TokenType == JsonToken.EndObject) { break; } else { throw new Exception(); } } } else { Tokens[currentProperty] = Newtonsoft.Json.Linq.JObject.Load(reader); } break; case JsonToken.StartArray: if (currentProperty == "TagPresets") { TagPresets = new List <TagPreset>(); while (reader.Read()) { if (reader.TokenType == JsonToken.StartObject) { TagPreset tag = new TagPreset(reader); if (!String.IsNullOrEmpty(tag.Tag) && tag.Tag[0] == '#' && !tag.Tag.Contains(' ') && !tag.Tag.Contains('\t')) { TagPresets.Add(tag); } } else if (reader.TokenType == JsonToken.EndArray) { break; } else { throw new Exception(); } } } else if (currentProperty == "Sparse") { Sparse = JSONHelper.ReadStringList(reader); } else if (currentProperty == "Excludes") { Excludes = JSONHelper.ReadStringList(reader); } else if (currentProperty == "Hooks") { Hooks = Newtonsoft.Json.Linq.JArray.Load(reader); } else { Tokens[currentProperty] = Newtonsoft.Json.Linq.JArray.Load(reader); } break; default: throw new Exception("Unhandled setup in configuration file"); break; } } }
public Directives() { Ignore = new Ignores(); Externals = new Dictionary <string, Extern>(); TagPresets = new List <TagPreset>(); }