Skip to content

Commit 77c360c

Browse files
committed
Upgraded to VS 2022, x64, .NET 4.8, code cleanup, safety checks
1 parent 90421e1 commit 77c360c

File tree

62 files changed

+1893
-409
lines changed

Some content is hidden

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

62 files changed

+1893
-409
lines changed

ArrayVisualizerExt/ArrayLoaders/CsArrayLoader.cs

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,24 @@
33
using System.Linq;
44
using ArrayVisualizerExt.TypeParsers;
55
using EnvDTE;
6+
using Microsoft.VisualStudio.Shell;
67

78
namespace ArrayVisualizerExt.ArrayLoaders
89
{
910
internal class CsArrayLoader : IArrayLoader
1011
{
1112
#region IArrayLoader Members
1213

13-
public char LeftBracket
14-
{
15-
get { return '['; }
16-
}
14+
public char LeftBracket => '[';
1715

18-
public char RightBracket
19-
{
20-
get { return ']'; }
21-
}
16+
public char RightBracket => ']';
2217

2318
public bool IsExpressionArrayType(Expression expression)
2419
{
2520
if (expression == null)
26-
throw new ArgumentNullException("expression");
21+
throw new ArgumentNullException(nameof(expression));
22+
23+
ThreadHelper.ThrowIfNotOnUIThread();
2724

2825
string expressionType = Helper.RemoveBrackets(expression.Type);
2926
return expressionType.EndsWith("]") && (expressionType.EndsWith("[]") || expressionType.EndsWith("[,]") ||
@@ -34,18 +31,22 @@ public bool IsExpressionArrayType(Expression expression)
3431
public string GetDisplayName(Expression expression)
3532
{
3633
if (expression == null)
37-
throw new ArgumentNullException("expression");
34+
throw new ArgumentNullException(nameof(expression));
35+
36+
ThreadHelper.ThrowIfNotOnUIThread();
3837

3938
return expression.Value;
4039
}
4140

4241
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers,
4342
int sectionCode)
4443
{
44+
ThreadHelper.ThrowIfNotOnUIThread();
45+
4546
if (expression.DataMembers.Count == 0)
4647
yield break;
4748

48-
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
49+
foreach (ITypeParser parser in parsers.Where(p => p.IsExpressionTypeSupported(expression)))
4950
{
5051
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression,
5152
sectionCode);
@@ -70,46 +71,49 @@ public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expressi
7071
public int GetMembersCount(Expression expression)
7172
{
7273
if (expression == null)
73-
throw new ArgumentNullException("expression");
74+
throw new ArgumentNullException(nameof(expression));
75+
76+
ThreadHelper.ThrowIfNotOnUIThread();
7477

7578
return expression.DataMembers.Count;
7679
}
7780

7881
public int[] GetDimensions(Expression expression)
7982
{
8083
if (expression == null)
81-
throw new ArgumentNullException("expression");
84+
throw new ArgumentNullException(nameof(expression));
85+
86+
ThreadHelper.ThrowIfNotOnUIThread();
8287

8388
string dims = expression.Value;
8489
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
8590
dims = dims.Substring(0, dims.IndexOf(RightBracket));
8691

87-
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim())).ToArray();
92+
int[] dimenstions = dims.Split(',').Select(x => ParseDimension(x.Trim())).ToArray();
8893

8994
return dimenstions;
9095
}
9196

9297
public int ParseDimension(string dimensionString)
9398
{
9499
if (dimensionString == null)
95-
throw new ArgumentNullException("dimensionString");
100+
throw new ArgumentNullException(nameof(dimensionString));
96101

97-
if (dimensionString.StartsWith("0x"))
98-
return int.Parse(dimensionString.Substring(2), System.Globalization.NumberStyles.HexNumber);
99-
else
100-
return int.Parse(dimensionString);
102+
return dimensionString.StartsWith("0x") ? int.Parse(dimensionString.Substring(2), System.Globalization.NumberStyles.HexNumber) : int.Parse(dimensionString);
101103
}
102104

103105
public object[] GetValues(Expression expression)
104106
{
105107
if (expression == null)
106-
throw new ArgumentNullException("expression");
108+
throw new ArgumentNullException(nameof(expression));
109+
110+
ThreadHelper.ThrowIfNotOnUIThread();
107111

108112
object[] values;
109113
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
110114
values = expression.DataMembers.Cast<Expression>().ToArray();
111115
else
112-
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
116+
values = expression.DataMembers.Cast<Expression>().Select(e => e.Value).ToArray();
113117

114118
return values;
115119
}

ArrayVisualizerExt/ArrayLoaders/FsArrayLoader.cs

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,22 @@
33
using System.Linq;
44
using ArrayVisualizerExt.TypeParsers;
55
using EnvDTE;
6+
using Microsoft.VisualStudio.Shell;
67

78
namespace ArrayVisualizerExt.ArrayLoaders
89
{
910
internal class FsArrayLoader : IArrayLoader
1011
{
1112
#region IArrayLoader Members
1213

13-
public char LeftBracket
14-
{
15-
get { return '['; }
16-
}
14+
public char LeftBracket => '[';
1715

18-
public char RightBracket
19-
{
20-
get { return ']'; }
21-
}
16+
public char RightBracket => ']';
2217

2318
public bool IsExpressionArrayType(Expression expression)
2419
{
2520
if (expression == null)
26-
throw new ArgumentNullException("expression");
21+
throw new ArgumentNullException(nameof(expression));
2722

2823
string expressionType = Helper.RemoveBrackets(expression.Type);
2924
return expressionType.EndsWith("]") && (expressionType.EndsWith("[]") || expressionType.EndsWith("[,]") ||
@@ -34,18 +29,22 @@ public bool IsExpressionArrayType(Expression expression)
3429
public string GetDisplayName(Expression expression)
3530
{
3631
if (expression == null)
37-
throw new ArgumentNullException("expression");
32+
throw new ArgumentNullException(nameof(expression));
33+
34+
ThreadHelper.ThrowIfNotOnUIThread();
3835

3936
return expression.Value;
4037
}
4138

4239
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers,
4340
int sectionCode)
4441
{
42+
ThreadHelper.ThrowIfNotOnUIThread();
43+
4544
if (expression.DataMembers.Count == 0)
4645
yield break;
4746

48-
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
47+
foreach (ITypeParser parser in parsers.Where(p => p.IsExpressionTypeSupported(expression)))
4948
{
5049
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression,
5150
sectionCode);
@@ -56,47 +55,50 @@ public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expressi
5655
public int GetMembersCount(Expression expression)
5756
{
5857
if (expression == null)
59-
throw new ArgumentNullException("expression");
58+
throw new ArgumentNullException(nameof(expression));
59+
60+
ThreadHelper.ThrowIfNotOnUIThread();
6061

6162
return expression.DataMembers.Count;
6263
}
6364

6465
public int[] GetDimensions(Expression expression)
6566
{
6667
if (expression == null)
67-
throw new ArgumentNullException("expression");
68+
throw new ArgumentNullException(nameof(expression));
69+
70+
ThreadHelper.ThrowIfNotOnUIThread();
6871

6972
string dims = expression.Value;
7073
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
7174
dims = dims.Substring(0, dims.IndexOf(RightBracket));
7275

73-
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim())).ToArray();
76+
int[] dimenstions = dims.Split(',').Select(x => ParseDimension(x.Trim())).ToArray();
7477

7578
return dimenstions;
7679
}
7780

7881
public int ParseDimension(string value)
7982
{
8083
if (value == null)
81-
throw new ArgumentNullException("value");
84+
throw new ArgumentNullException(nameof(value));
8285

83-
if (value.StartsWith("0x"))
84-
return int.Parse(value.Substring(2), System.Globalization.NumberStyles.HexNumber);
85-
else
86-
return int.Parse(value);
86+
return value.StartsWith("0x") ? int.Parse(value.Substring(2), System.Globalization.NumberStyles.HexNumber) : int.Parse(value);
8787
}
8888

8989
public object[] GetValues(Expression expression)
9090
{
9191
if (expression == null)
92-
throw new ArgumentNullException("expression");
92+
throw new ArgumentNullException(nameof(expression));
9393

94-
object[] values;
94+
ThreadHelper.ThrowIfNotOnUIThread();
9595

96+
object[] values;
97+
9698
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
9799
values = expression.DataMembers.Cast<Expression>().ToArray();
98100
else
99-
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
101+
values = expression.DataMembers.Cast<Expression>().Select(e => e.Value).ToArray();
100102
return values;
101103
}
102104

ArrayVisualizerExt/ArrayLoaders/VbArrayLoader.cs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,26 @@
33
using System.Linq;
44
using ArrayVisualizerExt.TypeParsers;
55
using EnvDTE;
6+
using Microsoft.VisualStudio.Shell;
67

78
namespace ArrayVisualizerExt.ArrayLoaders
89
{
910
internal class VbArrayLoader : IArrayLoader
1011
{
1112
#region IArrayLoader Members
1213

13-
public char LeftBracket
14-
{
15-
get { return '('; }
16-
}
14+
public char LeftBracket => '(';
1715

18-
public char RightBracket
19-
{
20-
get { return ')'; }
21-
}
16+
public char RightBracket => ')';
2217

2318
public bool IsExpressionArrayType(Expression expression)
2419
{
2520
if (expression == null)
26-
throw new ArgumentNullException("expression");
21+
throw new ArgumentNullException(nameof(expression));
2722

28-
string expressionType;
29-
if (expression.Type == "System.Array")
30-
expressionType = expression.Value;
31-
else
32-
expressionType = expression.Type;
23+
ThreadHelper.ThrowIfNotOnUIThread();
24+
25+
var expressionType = expression.Type == "System.Array" ? expression.Value : expression.Type;
3326

3427
expressionType = Helper.RemoveBrackets(expressionType);
3528
return expressionType.EndsWith(")") && (expressionType.EndsWith("()") || expressionType.EndsWith("(,)") ||
@@ -40,7 +33,9 @@ public bool IsExpressionArrayType(Expression expression)
4033
public string GetDisplayName(Expression expression)
4134
{
4235
if (expression == null)
43-
throw new ArgumentNullException("expression");
36+
throw new ArgumentNullException(nameof(expression));
37+
38+
ThreadHelper.ThrowIfNotOnUIThread();
4439

4540
if (expression.Type == "System.Array")
4641
return GetDisplayName(expression.DataMembers.Item(1));
@@ -54,10 +49,12 @@ public string GetDisplayName(Expression expression)
5449
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers,
5550
int sectionCode)
5651
{
52+
ThreadHelper.ThrowIfNotOnUIThread();
53+
5754
if (expression.Value == "Nothing" || expression.DataMembers.Count == 0)
5855
yield break;
5956

60-
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
57+
foreach (ITypeParser parser in parsers.Where(p => p.IsExpressionTypeSupported(expression)))
6158
{
6259
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression,
6360
sectionCode);
@@ -73,7 +70,9 @@ public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expressi
7370
public int GetMembersCount(Expression expression)
7471
{
7572
if (expression == null)
76-
throw new ArgumentNullException("expression");
73+
throw new ArgumentNullException(nameof(expression));
74+
75+
ThreadHelper.ThrowIfNotOnUIThread();
7776

7877
if (expression.Type == "System.Array")
7978
return GetMembersCount(expression.DataMembers.Item(1));
@@ -84,7 +83,9 @@ public int GetMembersCount(Expression expression)
8483
public int[] GetDimensions(Expression expression)
8584
{
8685
if (expression == null)
87-
throw new ArgumentNullException("expression");
86+
throw new ArgumentNullException(nameof(expression));
87+
88+
ThreadHelper.ThrowIfNotOnUIThread();
8889

8990
if (expression.Type == "System.Array")
9091
return GetDimensions(expression.DataMembers.Item(1));
@@ -94,25 +95,24 @@ public int[] GetDimensions(Expression expression)
9495
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
9596
dims = dims.Substring(0, dims.IndexOf(RightBracket));
9697

97-
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim()) + 1).ToArray();
98+
int[] dimenstions = dims.Split(',').Select(x => ParseDimension(x.Trim()) + 1).ToArray();
9899
return dimenstions;
99100
}
100101

101102
public int ParseDimension(string dimensionString)
102103
{
103104
if (string.IsNullOrEmpty(dimensionString))
104-
throw new ArgumentNullException("dimensionString");
105+
throw new ArgumentNullException(nameof(dimensionString));
105106

106-
if (dimensionString.StartsWith("&H"))
107-
return int.Parse(dimensionString.Substring(2), System.Globalization.NumberStyles.HexNumber);
108-
else
109-
return int.Parse(dimensionString);
107+
return dimensionString.StartsWith("&H") ? int.Parse(dimensionString.Substring(2), System.Globalization.NumberStyles.HexNumber) : int.Parse(dimensionString);
110108
}
111109

112110
public object[] GetValues(Expression expression)
113111
{
114112
if (expression == null)
115-
throw new ArgumentNullException("expression");
113+
throw new ArgumentNullException(nameof(expression));
114+
115+
ThreadHelper.ThrowIfNotOnUIThread();
116116

117117
if (expression.Type == "System.Array")
118118
return GetValues(expression.DataMembers.Item(1));
@@ -121,7 +121,7 @@ public object[] GetValues(Expression expression)
121121
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
122122
values = expression.DataMembers.Cast<Expression>().ToArray();
123123
else
124-
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
124+
values = expression.DataMembers.Cast<Expression>().Select(e => e.Value).ToArray();
125125
return values;
126126
}
127127

0 commit comments

Comments
 (0)