Enable comment and whitespace parsing where it is useful.

This commit is contained in:
Paul Chote
2018-05-07 19:07:21 +01:00
committed by reaperrr
parent df31690332
commit 82e2595beb
5 changed files with 19 additions and 17 deletions

View File

@@ -232,17 +232,18 @@ namespace OpenRA
if (File.Exists(settingsFile)) if (File.Exists(settingsFile))
{ {
yamlCache = MiniYaml.FromFile(settingsFile); yamlCache = MiniYaml.FromFile(settingsFile, false);
foreach (var yamlSection in yamlCache) foreach (var yamlSection in yamlCache)
{ {
object settingsSection; object settingsSection;
if (Sections.TryGetValue(yamlSection.Key, out settingsSection)) if (yamlSection.Key != null && Sections.TryGetValue(yamlSection.Key, out settingsSection))
LoadSectionYaml(yamlSection.Value, settingsSection); LoadSectionYaml(yamlSection.Value, settingsSection);
} }
var keysNode = yamlCache.FirstOrDefault(n => n.Key == "Keys"); var keysNode = yamlCache.FirstOrDefault(n => n.Key == "Keys");
if (keysNode != null) if (keysNode != null)
foreach (var node in keysNode.Value.Nodes) foreach (var node in keysNode.Value.Nodes)
if (node.Key != null)
Keys[node.Key] = FieldLoader.GetValue<Hotkey>(node.Key, node.Value.Value); Keys[node.Key] = FieldLoader.GetValue<Hotkey>(node.Key, node.Value.Value);
} }

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.UpdateRules
continue; continue;
} }
yaml.Add(Tuple.Create((IReadWritePackage)package, name, MiniYaml.FromStream(package.GetStream(name), name))); yaml.Add(Tuple.Create((IReadWritePackage)package, name, MiniYaml.FromStream(package.GetStream(name), name, false)));
} }
return yaml; return yaml;
@@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.UpdateRules
{ {
// Ignore any files that aren't in the map bundle // Ignore any files that aren't in the map bundle
if (!filename.Contains("|") && mapPackage.Contains(filename)) if (!filename.Contains("|") && mapPackage.Contains(filename))
fileSet.Add(Tuple.Create(mapPackage, filename, MiniYaml.FromStream(mapPackage.GetStream(filename), filename))); fileSet.Add(Tuple.Create(mapPackage, filename, MiniYaml.FromStream(mapPackage.GetStream(filename), filename, false)));
else if (modData.ModFiles.Exists(filename)) else if (modData.ModFiles.Exists(filename))
externalFilenames.Add(filename); externalFilenames.Add(filename);
} }
@@ -96,7 +96,7 @@ namespace OpenRA.Mods.Common.UpdateRules
return manualSteps; return manualSteps;
} }
var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, mapPackage.Name)); var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, mapPackage.Name, false));
files = new YamlFileSet() { Tuple.Create(mapPackage, "map.yaml", yaml.Nodes) }; files = new YamlFileSet() { Tuple.Create(mapPackage, "map.yaml", yaml.Nodes) };
manualSteps.AddRange(rule.BeforeUpdate(modData)); manualSteps.AddRange(rule.BeforeUpdate(modData));
@@ -154,7 +154,7 @@ namespace OpenRA.Mods.Common.UpdateRules
if (mapStream == null) if (mapStream == null)
continue; continue;
var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, package.Name)); var yaml = new MiniYaml(null, MiniYaml.FromStream(mapStream, package.Name, false));
var mapRulesNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Rules"); var mapRulesNode = yaml.Nodes.FirstOrDefault(n => n.Key == "Rules");
if (mapRulesNode != null) if (mapRulesNode != null)
foreach (var f in LoadExternalMapYaml(modData, mapRulesNode.Value, externalFilenames)) foreach (var f in LoadExternalMapYaml(modData, mapRulesNode.Value, externalFilenames))
@@ -192,6 +192,7 @@ namespace OpenRA.Mods.Common.UpdateRules
var childrenNode = current.Value.Nodes.FirstOrDefault(n => n.Key == "Children"); var childrenNode = current.Value.Nodes.FirstOrDefault(n => n.Key == "Children");
if (childrenNode != null) if (childrenNode != null)
foreach (var node in childrenNode.Value.Nodes) foreach (var node in childrenNode.Value.Nodes)
if (node.Key != null)
foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform))
yield return manualStep; yield return manualStep;
} }
@@ -203,6 +204,7 @@ namespace OpenRA.Mods.Common.UpdateRules
foreach (var file in files) foreach (var file in files)
foreach (var node in file.Item3) foreach (var node in file.Item3)
if (node.Key != null)
foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform))
yield return manualStep; yield return manualStep;
} }
@@ -214,6 +216,7 @@ namespace OpenRA.Mods.Common.UpdateRules
foreach (var file in files) foreach (var file in files)
foreach (var node in file.Item3) foreach (var node in file.Item3)
if (node.Key != null)
foreach (var manualStep in transform(modData, node)) foreach (var manualStep in transform(modData, node))
yield return manualStep; yield return manualStep;
} }

View File

@@ -38,7 +38,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
foreach (var filename in modData.Manifest.ChromeLayout) foreach (var filename in modData.Manifest.ChromeLayout)
{ {
Console.WriteLine("# {0}:", filename); Console.WriteLine("# {0}:", filename);
var yaml = MiniYaml.FromFile(filename); var yaml = MiniYaml.FromFile(filename, false);
FromChromeLayout(ref yaml, null, FromChromeLayout(ref yaml, null,
translatableFields.Select(t => t.Name).Distinct(), null); translatableFields.Select(t => t.Name).Distinct(), null);
using (var file = new StreamWriter(filename)) using (var file = new StreamWriter(filename))

View File

@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
{ {
include |= map.Package.Contains(f); include |= map.Package.Contains(f);
if (include) if (include)
nodes.AddRange(MiniYaml.FromStream(map.Open(f), f)); nodes.AddRange(MiniYaml.FromStream(map.Open(f), f, false));
else else
includes.Add(f); includes.Add(f);
} }

View File

@@ -62,8 +62,6 @@ namespace OpenRA.Mods.Common.UtilityCommands
if (!args.Contains("--yes")) if (!args.Contains("--yes"))
{ {
Console.WriteLine("WARNING: This command will automatically rewrite your mod rules."); Console.WriteLine("WARNING: This command will automatically rewrite your mod rules.");
Console.WriteLine("Side effects of this command may include changing the whitespace to ");
Console.WriteLine("match the default conventions, and any yaml comments will be removed.");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("We strongly recommend that you have a backup of your mod rules, and "); Console.WriteLine("We strongly recommend that you have a backup of your mod rules, and ");
Console.WriteLine("for best results, to use a Git client to review the line-by-line "); Console.WriteLine("for best results, to use a Git client to review the line-by-line ");