Skip to content

Commit fc2ee2a

Browse files
authored
Releases/3.1 (#63)
* Features/font selector (#59) * Start * Continued * Continued * Working font family selector, adding test console app * Adding font size selector * Option to fix dialog size instead of resizing to code (#60) * Adding 'create GitHub issue' button * Switching reflection type translations to extension methods with formatting, re: #61 * Handling window maximise / minimise * Features/font selector changes (#62) * Including all fonts * Moving buttons into dedicated classes / Making feedback button image themeable * Fixing font family selector highlight colours * Lowlighting non-standard coding fonts in font selector * Updating installer to v3.1 * v3.1 visualizers and installer * Updating options.gif / Ensuring visualizer initial size is big enough for translation / Ensuring visualizers are built in debug * Using screen working area to determine maximum size * Using screen working area to determine maximum size * Updated visualizers and installer
1 parent 9c667af commit fc2ee2a

File tree

66 files changed

+1161
-287
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1161
-287
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

ReadableExpressions.UnitTests/ReadableExpressions.UnitTests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,10 @@
119119
<Compile Include="Extensions\WhenGettingAParentExpressionNode.cs" />
120120
<Compile Include="Extensions\WhenGettingFriendlyNames.cs" />
121121
<Compile Include="ShouldExtensions.cs" />
122-
<Compile Include="StaticTranslators\WhenTranslatingTypes.cs" />
123-
<Compile Include="StaticTranslators\WhenTranslatingConstructorInfos.cs" />
122+
<Compile Include="Reflection\WhenTranslatingTypes.cs" />
123+
<Compile Include="Reflection\WhenTranslatingConstructorInfos.cs" />
124124
<Compile Include="TestClassBase.cs" />
125-
<Compile Include="StaticTranslators\WhenTranslatingMethodInfos.cs" />
125+
<Compile Include="Reflection\WhenTranslatingMethodInfos.cs" />
126126
<Compile Include="WhenFormattingCodeAsHtml.cs" />
127127
<Compile Include="WhenTranslatingVariableNames.cs" />
128128
<Compile Include="WhenUsingPartialTrust.cs" />

ReadableExpressions.UnitTests/StaticTranslators/WhenTranslatingConstructorInfos.cs renamed to ReadableExpressions.UnitTests/Reflection/WhenTranslatingConstructorInfos.cs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
namespace AgileObjects.ReadableExpressions.UnitTests.StaticTranslators
1+
namespace AgileObjects.ReadableExpressions.UnitTests.Reflection
22
{
33
using System;
44
using System.Collections.Generic;
55
using System.Reflection;
66
using NetStandardPolyfills;
7-
using Translations.StaticTranslators;
87
#if !NET35
98
using Xunit;
109
#else
@@ -17,7 +16,7 @@ public class WhenTranslatingConstructorInfos
1716
[Fact]
1817
public void ShouldTranslateANullCtorInfo()
1918
{
20-
var translated = DefinitionsTranslator.Translate(default(ConstructorInfo));
19+
var translated = default(ConstructorInfo).ToReadableString();
2120

2221
translated.ShouldBe("[Constructor not found]");
2322
}
@@ -28,7 +27,7 @@ public void ShouldTranslateAParameterlessCtorInfo()
2827
var ctor = typeof(Helper)
2928
.GetPublicInstanceConstructor();
3029

31-
var translated = DefinitionsTranslator.Translate(ctor);
30+
var translated = ctor.ToReadableString();
3231

3332
translated.ShouldBe("public WhenTranslatingConstructorInfos.Helper()");
3433
}
@@ -39,7 +38,7 @@ public void ShouldTranslateAnAbstractParameterlessCtorInfo()
3938
var ctor = typeof(AbstractHelper)
4039
.GetNonPublicInstanceConstructor();
4140

42-
var translated = DefinitionsTranslator.Translate(ctor);
41+
var translated = ctor.ToReadableString();
4342

4443
translated.ShouldBe("protected WhenTranslatingConstructorInfos.AbstractHelper()");
4544
}
@@ -50,7 +49,7 @@ public void ShouldTranslateASealedParameterlessCtorInfo()
5049
var ctor = typeof(SealedInternalHelper)
5150
.GetNonPublicInstanceConstructor();
5251

53-
var translated = DefinitionsTranslator.Translate(ctor);
52+
var translated = ctor.ToReadableString();
5453

5554
translated.ShouldBe("internal WhenTranslatingConstructorInfos.SealedInternalHelper()");
5655
}
@@ -61,7 +60,7 @@ public void ShouldTranslateASingleParameterCtorInfo()
6160
var ctor = typeof(Helper)
6261
.GetPublicInstanceConstructor(typeof(int));
6362

64-
var translated = DefinitionsTranslator.Translate(ctor);
63+
var translated = ctor.ToReadableString();
6564

6665
const string EXPECTED =
6766
@"public WhenTranslatingConstructorInfos.Helper
@@ -77,7 +76,7 @@ public void ShouldTranslateATwoParameterCtorInfo()
7776
var ctor = typeof(Helper)
7877
.GetPublicInstanceConstructor(typeof(DateTime), typeof(int));
7978

80-
var translated = DefinitionsTranslator.Translate(ctor);
79+
var translated = ctor.ToReadableString();
8180

8281
const string EXPECTED =
8382
@"public WhenTranslatingConstructorInfos.Helper
@@ -94,7 +93,7 @@ public void ShouldTranslateAnOpenGenericCtorInfo()
9493
var ctor = typeof(Helper<>)
9594
.GetPublicInstanceConstructor();
9695

97-
var translated = DefinitionsTranslator.Translate(ctor);
96+
var translated = ctor.ToReadableString();
9897

9998
translated.ShouldBe("public WhenTranslatingConstructorInfos.Helper<T>()");
10099
}
@@ -105,7 +104,7 @@ public void ShouldTranslateAClosedGenericCtorInfo()
105104
var ctor = typeof(Helper<Dictionary<int, string>>)
106105
.GetPublicInstanceConstructor();
107106

108-
var translated = DefinitionsTranslator.Translate(ctor);
107+
var translated = ctor.ToReadableString();
109108

110109
translated.ShouldBe("public WhenTranslatingConstructorInfos.Helper<Dictionary<int, string>>()");
111110
}
@@ -116,7 +115,7 @@ public void ShouldTranslateAParameterlessTwoOpenGenericsCtorInfo()
116115
var method = typeof(Helper<,>)
117116
.GetPublicInstanceConstructor();
118117

119-
var translated = DefinitionsTranslator.Translate(method);
118+
var translated = method.ToReadableString();
120119

121120
translated.ShouldBe("public WhenTranslatingConstructorInfos.Helper<T1, T2>()");
122121
}
@@ -127,7 +126,7 @@ public void ShouldTranslateAThreeParametersTwoGenericsCtorInfo()
127126
var method = typeof(Helper<DateTime, TimeSpan>)
128127
.GetPublicInstanceConstructor(typeof(int), typeof(Func<int, DateTime>), typeof(TimeSpan));
129128

130-
var translated = DefinitionsTranslator.Translate(method);
129+
var translated = method.ToReadableString();
131130

132131
const string EXPECTED =
133132
@"public WhenTranslatingConstructorInfos.Helper<DateTime, TimeSpan>
@@ -145,7 +144,7 @@ public void ShouldTranslateAnOutParameter()
145144
var ctor = typeof(Helper)
146145
.GetPublicInstanceConstructor(typeof(DateTime).MakeByRefType());
147146

148-
var translated = DefinitionsTranslator.Translate(ctor);
147+
var translated = ctor.ToReadableString();
149148

150149
const string EXPECTED =
151150
@"public WhenTranslatingConstructorInfos.Helper
@@ -161,7 +160,7 @@ public void ShouldTranslateARefParameter()
161160
var ctor = typeof(Helper)
162161
.GetPublicInstanceConstructor(typeof(object).MakeByRefType());
163162

164-
var translated = DefinitionsTranslator.Translate(ctor);
163+
var translated = ctor.ToReadableString();
165164

166165
const string EXPECTED =
167166
@"public WhenTranslatingConstructorInfos.Helper

ReadableExpressions.UnitTests/StaticTranslators/WhenTranslatingMethodInfos.cs renamed to ReadableExpressions.UnitTests/Reflection/WhenTranslatingMethodInfos.cs

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
namespace AgileObjects.ReadableExpressions.UnitTests.StaticTranslators
1+
namespace AgileObjects.ReadableExpressions.UnitTests.Reflection
22
{
33
using System;
44
using System.Collections.Generic;
5+
using System.Linq;
56
using System.Reflection;
67
using NetStandardPolyfills;
7-
using Translations.StaticTranslators;
88
#if !NET35
99
using Xunit;
1010
#else
@@ -17,7 +17,7 @@ public class WhenTranslatingMethodInfos
1717
[Fact]
1818
public void ShouldTranslateANullMethodInfo()
1919
{
20-
var translated = DefinitionsTranslator.Translate(default(MethodInfo));
20+
var translated = default(MethodInfo).ToReadableString();
2121

2222
translated.ShouldBe("[Method not found]");
2323
}
@@ -29,7 +29,7 @@ public void ShouldTranslateAPublicInstancePropertyGetter()
2929
.GetPublicInstanceProperty(nameof(Helper.PublicInstanceProperty))
3030
.GetGetter();
3131

32-
var translated = DefinitionsTranslator.Translate(getter);
32+
var translated = getter.ToReadableString();
3333

3434
const string EXPECTED =
3535
"public int WhenTranslatingMethodInfos.Helper.PublicInstanceProperty { get; }";
@@ -44,7 +44,7 @@ public void ShouldTranslateAPublicInstancePropertySetter()
4444
.GetPublicInstanceProperty(nameof(Helper.PublicInstanceProperty))
4545
.GetSetter();
4646

47-
var translated = DefinitionsTranslator.Translate(setter);
47+
var translated = setter.ToReadableString();
4848

4949
const string EXPECTED =
5050
"public int WhenTranslatingMethodInfos.Helper.PublicInstanceProperty { set; }";
@@ -59,7 +59,7 @@ public void ShouldTranslateAnInternalInstancePropertyGetter()
5959
.GetNonPublicInstanceProperty(nameof(Helper.InternalInstanceProperty))
6060
.GetGetter(nonPublic: true);
6161

62-
var translated = DefinitionsTranslator.Translate(getter);
62+
var translated = getter.ToReadableString();
6363

6464
const string EXPECTED =
6565
"internal string WhenTranslatingMethodInfos.Helper.InternalInstanceProperty { get; }";
@@ -74,7 +74,7 @@ public void ShouldTranslateAProtectedInstancePropertyGetter()
7474
.GetNonPublicInstanceProperty("ProtectedInstanceProperty")
7575
.GetGetter(nonPublic: true);
7676

77-
var translated = DefinitionsTranslator.Translate(getter);
77+
var translated = getter.ToReadableString();
7878

7979
const string EXPECTED =
8080
"protected string WhenTranslatingMethodInfos.Helper.ProtectedInstanceProperty { get; }";
@@ -89,7 +89,7 @@ public void ShouldTranslateAProtectedInternalInstancePropertyGetter()
8989
.GetNonPublicInstanceProperty(nameof(Helper.ProtectedInternalInstanceProperty))
9090
.GetGetter(nonPublic: true);
9191

92-
var translated = DefinitionsTranslator.Translate(getter);
92+
var translated = getter.ToReadableString();
9393

9494
const string EXPECTED =
9595
"protected internal string WhenTranslatingMethodInfos.Helper.ProtectedInternalInstanceProperty { get; }";
@@ -104,7 +104,7 @@ public void ShouldTranslateAPrivateInstancePropertyGetter()
104104
.GetNonPublicInstanceProperty("PrivateInstanceProperty")
105105
.GetGetter(nonPublic: true);
106106

107-
var translated = DefinitionsTranslator.Translate(getter);
107+
var translated = getter.ToReadableString();
108108

109109
const string EXPECTED =
110110
"private string WhenTranslatingMethodInfos.Helper.PrivateInstanceProperty { get; }";
@@ -118,7 +118,7 @@ public void ShouldTranslateAParameterlessMethodInfo()
118118
var method = typeof(Helper)
119119
.GetPublicInstanceMethod(nameof(Helper.InstanceParameterless));
120120

121-
var translated = DefinitionsTranslator.Translate(method);
121+
var translated = method.ToReadableString();
122122

123123
const string EXPECTED =
124124
"public string WhenTranslatingMethodInfos.Helper.InstanceParameterless()";
@@ -132,7 +132,7 @@ public void ShouldTranslateAVirtualParameterlessMethodInfo()
132132
var method = typeof(Helper)
133133
.GetPublicInstanceMethod(nameof(Helper.InstanceVirtualParameterless));
134134

135-
var translated = DefinitionsTranslator.Translate(method);
135+
var translated = method.ToReadableString();
136136

137137
const string EXPECTED =
138138
"public virtual string WhenTranslatingMethodInfos.Helper.InstanceVirtualParameterless()";
@@ -147,7 +147,7 @@ public void ShouldTranslateAnAbstractInstancePropertyGetter()
147147
.GetPublicInstanceProperty(nameof(AbstractHelper.PublicInstanceProperty))
148148
.GetGetter();
149149

150-
var translated = DefinitionsTranslator.Translate(getter);
150+
var translated = getter.ToReadableString();
151151

152152
const string EXPECTED =
153153
"public abstract int WhenTranslatingMethodInfos.AbstractHelper.PublicInstanceProperty { get; }";
@@ -161,7 +161,7 @@ public void ShouldTranslateAnAbstractParameterlessMethodInfo()
161161
var method = typeof(AbstractHelper)
162162
.GetPublicInstanceMethod(nameof(AbstractHelper.InstanceAbstractParameterless));
163163

164-
var translated = DefinitionsTranslator.Translate(method);
164+
var translated = method.ToReadableString();
165165

166166
const string EXPECTED =
167167
"public abstract string WhenTranslatingMethodInfos.AbstractHelper.InstanceAbstractParameterless()";
@@ -175,7 +175,7 @@ public void ShouldTranslateAnAbstractClassParameterlessMethodInfo()
175175
var method = typeof(AbstractHelper)
176176
.GetPublicInstanceMethod(nameof(AbstractHelper.InstanceParameterless));
177177

178-
var translated = DefinitionsTranslator.Translate(method);
178+
var translated = method.ToReadableString();
179179

180180
const string EXPECTED =
181181
"public string WhenTranslatingMethodInfos.AbstractHelper.InstanceParameterless()";
@@ -189,7 +189,7 @@ public void ShouldTranslateASingleParameterMethodInfo()
189189
var method = typeof(Helper)
190190
.GetPublicInstanceMethod(nameof(Helper.InstanceOneParameter));
191191

192-
var translated = DefinitionsTranslator.Translate(method);
192+
var translated = method.ToReadableString();
193193

194194
const string EXPECTED =
195195
@"public int WhenTranslatingMethodInfos.Helper.InstanceOneParameter
@@ -205,7 +205,7 @@ public void ShouldTranslateATwoParameterMethodInfo()
205205
var method = typeof(Helper)
206206
.GetPublicInstanceMethod(nameof(Helper.InstanceTwoParameters));
207207

208-
var translated = DefinitionsTranslator.Translate(method);
208+
var translated = method.ToReadableString();
209209

210210
const string EXPECTED =
211211
@"public DateTime WhenTranslatingMethodInfos.Helper.InstanceTwoParameters
@@ -222,7 +222,7 @@ public void ShouldTranslateAnOpenGenericMethodInfo()
222222
var method = typeof(Helper)
223223
.GetPublicInstanceMethod(nameof(Helper.InstanceParameterlessSingleGeneric));
224224

225-
var translated = DefinitionsTranslator.Translate(method);
225+
var translated = method.ToReadableString();
226226

227227
const string EXPECTED =
228228
"public Type WhenTranslatingMethodInfos.Helper.InstanceParameterlessSingleGeneric<T>()";
@@ -237,7 +237,7 @@ public void ShouldTranslateAClosedGenericMethodInfo()
237237
.GetPublicInstanceMethod(nameof(Helper.InstanceParameterlessSingleGeneric))
238238
.MakeGenericMethod(typeof(Dictionary<,>));
239239

240-
var translated = DefinitionsTranslator.Translate(method);
240+
var translated = method.ToReadableString();
241241

242242
const string EXPECTED =
243243
"public Type WhenTranslatingMethodInfos.Helper.InstanceParameterlessSingleGeneric<Dictionary<TKey, TValue>>()";
@@ -251,7 +251,7 @@ public void ShouldTranslateAThreeParametersTwoOpenGenericsMethodInfo()
251251
var method = typeof(Helper)
252252
.GetPublicInstanceMethod(nameof(Helper.InstanceThreeParametersTwoGenerics));
253253

254-
var translated = DefinitionsTranslator.Translate(method);
254+
var translated = method.ToReadableString();
255255

256256
const string EXPECTED =
257257
@"public void WhenTranslatingMethodInfos.Helper.InstanceThreeParametersTwoGenerics<T1, T2>
@@ -269,7 +269,7 @@ public void ShouldTranslateAnOutParameter()
269269
var method = typeof(Helper)
270270
.GetPublicStaticMethod(nameof(Helper.StaticOutParameter));
271271

272-
var translated = DefinitionsTranslator.Translate(method);
272+
var translated = method.ToReadableString();
273273

274274
const string EXPECTED =
275275
@"public static string WhenTranslatingMethodInfos.Helper.StaticOutParameter
@@ -286,7 +286,7 @@ public void ShouldTranslateARefParameter()
286286
.GetPublicStaticMethod(nameof(Helper.StaticRefParameter))
287287
.MakeGenericMethod(typeof(List<List<int>>));
288288

289-
var translated = DefinitionsTranslator.Translate(method);
289+
var translated = method.ToReadableString();
290290

291291
const string EXPECTED =
292292
@"public static void WhenTranslatingMethodInfos.Helper.StaticRefParameter<List<List<int>>>
@@ -296,6 +296,31 @@ ref List<List<int>> value
296296
translated.ShouldBe(EXPECTED);
297297
}
298298

299+
// See https://github.com/agileobjects/ReadableExpressions/issues/61
300+
[Fact]
301+
public void ShouldTranslateAnOpenGenericQueryableExtensionMethod()
302+
{
303+
var method = typeof(Queryable)
304+
.GetPublicStaticMethods("SelectMany")
305+
.First(m =>
306+
m.GetParameters().Length == 3 &&
307+
m.GetParameters()[1]
308+
.ParameterType
309+
.GetGenericTypeArguments()[0]
310+
.GetGenericTypeArguments().Length == 3);
311+
312+
var translated = method.ToReadableString();
313+
314+
const string EXPECTED = @"
315+
public static IQueryable<TResult> Queryable.SelectMany<TSource, TCollection, TResult>
316+
(
317+
IQueryable<TSource> source,
318+
Expression<Func<TSource, int, IEnumerable<TCollection>>> collectionSelector,
319+
Expression<Func<TSource, TCollection, TResult>> resultSelector
320+
)";
321+
translated.ShouldBe(EXPECTED.TrimStart());
322+
}
323+
299324
#region Helper Classes
300325

301326
// ReSharper disable once ClassWithVirtualMembersNeverInherited.Local

0 commit comments

Comments
 (0)