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,18 +232,19 @@ 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)
Keys[node.Key] = FieldLoader.GetValue<Hotkey>(node.Key, node.Value.Value); if (node.Key != null)
Keys[node.Key] = FieldLoader.GetValue<Hotkey>(node.Key, node.Value.Value);
} }
// Override with commandline args // Override with commandline args

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,8 +192,9 @@ 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)
foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) if (node.Key != null)
yield return manualStep; foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform))
yield return manualStep;
} }
static IEnumerable<string> ApplyChromeTransform(ModData modData, YamlFileSet files, UpdateRule.ChromeNodeTransform transform) static IEnumerable<string> ApplyChromeTransform(ModData modData, YamlFileSet files, UpdateRule.ChromeNodeTransform transform)
@@ -203,8 +204,9 @@ 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)
foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform)) if (node.Key != null)
yield return manualStep; foreach (var manualStep in ApplyChromeTransformInner(modData, node, transform))
yield return manualStep;
} }
static IEnumerable<string> ApplyTopLevelTransform(ModData modData, YamlFileSet files, UpdateRule.TopLevelNodeTransform transform) static IEnumerable<string> ApplyTopLevelTransform(ModData modData, YamlFileSet files, UpdateRule.TopLevelNodeTransform transform)
@@ -214,8 +216,9 @@ 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)
foreach (var manualStep in transform(modData, node)) if (node.Key != null)
yield return manualStep; foreach (var manualStep in transform(modData, node))
yield return manualStep;
} }
public static string FormatMessageList(IEnumerable<string> messages, int indent = 0) public static string FormatMessageList(IEnumerable<string> messages, int indent = 0)

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 ");