diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2019-01-19 20:40:43 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2019-01-19 20:40:43 -0600 |
commit | 0c688dbd8a32342f117179ec3432b4237334dbcd (patch) | |
tree | babb39000f32477e9dee672da907fcc47178fe07 /src | |
parent | 084093cc0ab26f34d86ca5f38b0d3612cf4bc80e (diff) | |
download | wix-0c688dbd8a32342f117179ec3432b4237334dbcd.tar.gz wix-0c688dbd8a32342f117179ec3432b4237334dbcd.tar.bz2 wix-0c688dbd8a32342f117179ec3432b4237334dbcd.zip |
Use class name from xml for the generated class name.
Diffstat (limited to 'src')
-rw-r--r-- | src/MessagesToMessages/Program.cs | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/src/MessagesToMessages/Program.cs b/src/MessagesToMessages/Program.cs index 514c8a26..2d5a3777 100644 --- a/src/MessagesToMessages/Program.cs +++ b/src/MessagesToMessages/Program.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.IO; | 3 | using System.IO; |
4 | using System.Linq; | 4 | using System.Linq; |
@@ -40,9 +40,10 @@ namespace MessagesToMessages | |||
40 | 40 | ||
41 | foreach (var m in messages.GroupBy(m => m.Level)) | 41 | foreach (var m in messages.GroupBy(m => m.Level)) |
42 | { | 42 | { |
43 | var result = GenerateCs(m.Key, m); | 43 | var className = m.First().ClassName; |
44 | var result = GenerateCs(className, m.Key, m); | ||
44 | 45 | ||
45 | var path = Path.Combine(args[1], m.Key + "Messages.cs"); | 46 | var path = Path.Combine(args[1], className + ".cs"); |
46 | File.WriteAllText(path, result); | 47 | File.WriteAllText(path, result); |
47 | } | 48 | } |
48 | } | 49 | } |
@@ -53,7 +54,28 @@ namespace MessagesToMessages | |||
53 | 54 | ||
54 | foreach (var xClass in doc.Root.Descendants(ClassDefinition)) | 55 | foreach (var xClass in doc.Root.Descendants(ClassDefinition)) |
55 | { | 56 | { |
56 | var level = xClass.Attribute(Level).Value; | 57 | var name = xClass.Attribute(Name)?.Value; |
58 | var level = xClass.Attribute(Level)?.Value; | ||
59 | |||
60 | if (String.IsNullOrEmpty(name)) | ||
61 | { | ||
62 | name = level + "Messages"; | ||
63 | } | ||
64 | if (String.IsNullOrEmpty(level)) | ||
65 | { | ||
66 | if (name.EndsWith("Errors", StringComparison.InvariantCultureIgnoreCase)) | ||
67 | { | ||
68 | level = "Error"; | ||
69 | } | ||
70 | else if (name.EndsWith("Verboses", StringComparison.InvariantCultureIgnoreCase)) | ||
71 | { | ||
72 | level = "Verbose"; | ||
73 | } | ||
74 | else if (name.EndsWith("Warnings", StringComparison.InvariantCultureIgnoreCase)) | ||
75 | { | ||
76 | level = "Warning"; | ||
77 | } | ||
78 | } | ||
57 | 79 | ||
58 | var unique = new HashSet<string>(); | 80 | var unique = new HashSet<string>(); |
59 | var lastNumber = 0; | 81 | var lastNumber = 0; |
@@ -81,7 +103,7 @@ namespace MessagesToMessages | |||
81 | 103 | ||
82 | var parameters = xInstance.Elements(ParameterDefinition).Select(ReadParameter).ToList(); | 104 | var parameters = xInstance.Elements(ParameterDefinition).Select(ReadParameter).ToList(); |
83 | 105 | ||
84 | yield return new Message { Id = id, Level = level, Number = number, Parameters = parameters, SourceLineNumbers = sln, Value = value, Suffix = suffix == 0 ? String.Empty : suffix.ToString() }; | 106 | yield return new Message { Id = id, ClassName = name, Level = level, Number = number, Parameters = parameters, SourceLineNumbers = sln, Value = value, Suffix = suffix == 0 ? String.Empty : suffix.ToString() }; |
85 | 107 | ||
86 | ++suffix; | 108 | ++suffix; |
87 | } | 109 | } |
@@ -117,7 +139,7 @@ namespace MessagesToMessages | |||
117 | return new Parameter { Name = name, Type = type }; | 139 | return new Parameter { Name = name, Type = type }; |
118 | } | 140 | } |
119 | 141 | ||
120 | private static string GenerateCs(string level, IEnumerable<Message> messages) | 142 | private static string GenerateCs(string className, string level, IEnumerable<Message> messages) |
121 | { | 143 | { |
122 | var header = String.Join(Environment.NewLine, | 144 | var header = String.Join(Environment.NewLine, |
123 | "// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.", | 145 | "// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.", |
@@ -127,7 +149,7 @@ namespace MessagesToMessages | |||
127 | " using System;", | 149 | " using System;", |
128 | " using System.Resources;", | 150 | " using System.Resources;", |
129 | "", | 151 | "", |
130 | " public static class {0}Messages", | 152 | " public static class {0}", |
131 | " {"); | 153 | " {"); |
132 | 154 | ||
133 | var messageFormat = String.Join(Environment.NewLine, | 155 | var messageFormat = String.Join(Environment.NewLine, |
@@ -162,7 +184,7 @@ namespace MessagesToMessages | |||
162 | 184 | ||
163 | var sb = new StringBuilder(); | 185 | var sb = new StringBuilder(); |
164 | 186 | ||
165 | sb.AppendLine(header.Replace("{0}", level)); | 187 | sb.AppendLine(header.Replace("{0}", className)); |
166 | 188 | ||
167 | foreach (var message in messages.OrderBy(m => m.Id)) | 189 | foreach (var message in messages.OrderBy(m => m.Id)) |
168 | { | 190 | { |
@@ -215,6 +237,8 @@ namespace MessagesToMessages | |||
215 | 237 | ||
216 | public string Suffix { get; set; } | 238 | public string Suffix { get; set; } |
217 | 239 | ||
240 | public string ClassName { get; set; } | ||
241 | |||
218 | public string Level { get; set; } | 242 | public string Level { get; set; } |
219 | 243 | ||
220 | public int Number { get; set; } | 244 | public int Number { get; set; } |