Skip to content

Commit cb4b2dd

Browse files
committed
Refactoring and QoL improvements
Reformatted all files for better reading and editing Added QoL feature: The last selected array will be remembered and automatically re-selected if found
1 parent 40b0fb6 commit cb4b2dd

File tree

79 files changed

+4074
-3917
lines changed

Some content is hidden

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

79 files changed

+4074
-3917
lines changed

.nuget/NuGet.Config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2+
23
<configuration>
34
<solution>
45
<add key="disableSourceControlIntegration" value="false" />

ArrayVisualizerExt/ArrayLoaders/CsArrayLoader.cs

Lines changed: 109 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -6,104 +6,114 @@
66

77
namespace ArrayVisualizerExt.ArrayLoaders
88
{
9-
internal class CsArrayLoader : IArrayLoader
10-
{
11-
#region IArrayLoader Members
12-
13-
public char LeftBracket { get { return '['; } }
14-
15-
public char RightBracket { get { return ']'; } }
16-
17-
public bool IsExpressionArrayType(Expression expression)
18-
{
19-
if (expression == null)
20-
throw new ArgumentNullException("expression");
21-
22-
string expressionType = Helper.RemoveBrackets(expression.Type);
23-
return expressionType.EndsWith("]") && (expressionType.EndsWith("[]") || expressionType.EndsWith("[,]") || expressionType.EndsWith("[,,]") || expressionType.EndsWith("[,,,]"));
24-
}
25-
26-
public string GetDisplayName(Expression expression)
27-
{
28-
if (expression == null)
29-
throw new ArgumentNullException("expression");
30-
31-
return expression.Value;
32-
}
33-
34-
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers, int sectionCode)
35-
{
36-
if (expression.DataMembers.Count == 0)
37-
yield break;
38-
39-
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
40-
{
41-
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression, sectionCode);
42-
break;
43-
}
44-
45-
switch (expression.Name)
46-
{
47-
case "this":
48-
foreach (Expression subExpression in expression.DataMembers)
49-
foreach (ExpressionInfo item in GetArrays("this.", subExpression, parsers, -1))
50-
yield return item;
51-
break;
52-
case "Static members":
53-
foreach (Expression subExpression in expression.DataMembers)
54-
foreach (ExpressionInfo item in GetArrays("(Static) ", subExpression, parsers, -2))
55-
yield return item;
56-
break;
57-
}
58-
}
59-
60-
public int GetMembersCount(Expression expression)
9+
internal class CsArrayLoader : IArrayLoader
6110
{
62-
if (expression == null)
63-
throw new ArgumentNullException("expression");
64-
65-
return expression.DataMembers.Count;
11+
#region IArrayLoader Members
12+
13+
public char LeftBracket
14+
{
15+
get { return '['; }
16+
}
17+
18+
public char RightBracket
19+
{
20+
get { return ']'; }
21+
}
22+
23+
public bool IsExpressionArrayType(Expression expression)
24+
{
25+
if (expression == null)
26+
throw new ArgumentNullException("expression");
27+
28+
string expressionType = Helper.RemoveBrackets(expression.Type);
29+
return expressionType.EndsWith("]") && (expressionType.EndsWith("[]") || expressionType.EndsWith("[,]") ||
30+
expressionType.EndsWith("[,,]") ||
31+
expressionType.EndsWith("[,,,]"));
32+
}
33+
34+
public string GetDisplayName(Expression expression)
35+
{
36+
if (expression == null)
37+
throw new ArgumentNullException("expression");
38+
39+
return expression.Value;
40+
}
41+
42+
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers,
43+
int sectionCode)
44+
{
45+
if (expression.DataMembers.Count == 0)
46+
yield break;
47+
48+
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
49+
{
50+
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression,
51+
sectionCode);
52+
break;
53+
}
54+
55+
switch (expression.Name)
56+
{
57+
case "this":
58+
foreach (Expression subExpression in expression.DataMembers)
59+
foreach (ExpressionInfo item in GetArrays("this.", subExpression, parsers, -1))
60+
yield return item;
61+
break;
62+
case "Static members":
63+
foreach (Expression subExpression in expression.DataMembers)
64+
foreach (ExpressionInfo item in GetArrays("(Static) ", subExpression, parsers, -2))
65+
yield return item;
66+
break;
67+
}
68+
}
69+
70+
public int GetMembersCount(Expression expression)
71+
{
72+
if (expression == null)
73+
throw new ArgumentNullException("expression");
74+
75+
return expression.DataMembers.Count;
76+
}
77+
78+
public int[] GetDimensions(Expression expression)
79+
{
80+
if (expression == null)
81+
throw new ArgumentNullException("expression");
82+
83+
string dims = expression.Value;
84+
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
85+
dims = dims.Substring(0, dims.IndexOf(RightBracket));
86+
87+
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim())).ToArray();
88+
89+
return dimenstions;
90+
}
91+
92+
public int ParseDimension(string dimensionString)
93+
{
94+
if (dimensionString == null)
95+
throw new ArgumentNullException("dimensionString");
96+
97+
if (dimensionString.StartsWith("0x"))
98+
return int.Parse(dimensionString.Substring(2), System.Globalization.NumberStyles.HexNumber);
99+
else
100+
return int.Parse(dimensionString);
101+
}
102+
103+
public object[] GetValues(Expression expression)
104+
{
105+
if (expression == null)
106+
throw new ArgumentNullException("expression");
107+
108+
object[] values;
109+
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
110+
values = expression.DataMembers.Cast<Expression>().ToArray();
111+
else
112+
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
113+
114+
return values;
115+
}
116+
117+
#endregion
66118
}
67-
68-
public int[] GetDimensions(Expression expression)
69-
{
70-
if (expression == null)
71-
throw new ArgumentNullException("expression");
72-
73-
string dims = expression.Value;
74-
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
75-
dims = dims.Substring(0, dims.IndexOf(RightBracket));
76-
77-
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim())).ToArray();
78-
79-
return dimenstions;
80-
}
81-
82-
public int ParseDimension(string dimensionString)
83-
{
84-
if (dimensionString == null)
85-
throw new ArgumentNullException("dimensionString");
86-
87-
if (dimensionString.StartsWith("0x"))
88-
return int.Parse(dimensionString.Substring(2), System.Globalization.NumberStyles.HexNumber);
89-
else
90-
return int.Parse(dimensionString);
91-
}
92-
93-
public object[] GetValues(Expression expression)
94-
{
95-
if (expression == null)
96-
throw new ArgumentNullException("expression");
97-
98-
object[] values;
99-
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
100-
values = expression.DataMembers.Cast<Expression>().ToArray();
101-
else
102-
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
103-
104-
return values;
105-
}
106-
107-
#endregion
108-
}
109-
}
119+
}

ArrayVisualizerExt/ArrayLoaders/FsArrayLoader.cs

Lines changed: 85 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -6,90 +6,100 @@
66

77
namespace ArrayVisualizerExt.ArrayLoaders
88
{
9-
internal class FsArrayLoader : IArrayLoader
10-
{
11-
#region IArrayLoader Members
9+
internal class FsArrayLoader : IArrayLoader
10+
{
11+
#region IArrayLoader Members
1212

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

15-
public char RightBracket { get { return ']'; } }
18+
public char RightBracket
19+
{
20+
get { return ']'; }
21+
}
1622

17-
public bool IsExpressionArrayType(Expression expression)
18-
{
19-
if (expression == null)
20-
throw new ArgumentNullException("expression");
21-
22-
string expressionType = Helper.RemoveBrackets(expression.Type);
23-
return expressionType.EndsWith("]") && (expressionType.EndsWith("[]") || expressionType.EndsWith("[,]") || expressionType.EndsWith("[,,]") || expressionType.EndsWith("[,,,]"));
24-
}
23+
public bool IsExpressionArrayType(Expression expression)
24+
{
25+
if (expression == null)
26+
throw new ArgumentNullException("expression");
2527

26-
public string GetDisplayName(Expression expression)
27-
{
28-
if (expression == null)
29-
throw new ArgumentNullException("expression");
30-
31-
return expression.Value;
32-
}
28+
string expressionType = Helper.RemoveBrackets(expression.Type);
29+
return expressionType.EndsWith("]") && (expressionType.EndsWith("[]") || expressionType.EndsWith("[,]") ||
30+
expressionType.EndsWith("[,,]") ||
31+
expressionType.EndsWith("[,,,]"));
32+
}
3333

34-
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers, int sectionCode)
35-
{
36-
if (expression.DataMembers.Count == 0)
37-
yield break;
38-
39-
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
40-
{
41-
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression, sectionCode);
42-
break;
43-
}
44-
}
34+
public string GetDisplayName(Expression expression)
35+
{
36+
if (expression == null)
37+
throw new ArgumentNullException("expression");
4538

46-
public int GetMembersCount(Expression expression)
47-
{
48-
if (expression == null)
49-
throw new ArgumentNullException("expression");
50-
51-
return expression.DataMembers.Count;
52-
}
39+
return expression.Value;
40+
}
5341

54-
public int[] GetDimensions(Expression expression)
55-
{
56-
if (expression == null)
57-
throw new ArgumentNullException("expression");
58-
59-
string dims = expression.Value;
60-
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
61-
dims = dims.Substring(0, dims.IndexOf(RightBracket));
42+
public IEnumerable<ExpressionInfo> GetArrays(string section, Expression expression, ParsersCollection parsers,
43+
int sectionCode)
44+
{
45+
if (expression.DataMembers.Count == 0)
46+
yield break;
6247

63-
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim())).ToArray();
48+
foreach (ITypeParser parser in parsers.Where(P => P.IsExpressionTypeSupported(expression)))
49+
{
50+
yield return new ExpressionInfo(expression.Name, section, parser.GetDisplayName(expression), expression,
51+
sectionCode);
52+
break;
53+
}
54+
}
6455

65-
return dimenstions;
66-
}
56+
public int GetMembersCount(Expression expression)
57+
{
58+
if (expression == null)
59+
throw new ArgumentNullException("expression");
6760

68-
public int ParseDimension(string value)
69-
{
70-
if (value == null)
71-
throw new ArgumentNullException("value");
72-
73-
if (value.StartsWith("0x"))
74-
return int.Parse(value.Substring(2), System.Globalization.NumberStyles.HexNumber);
75-
else
76-
return int.Parse(value);
77-
}
61+
return expression.DataMembers.Count;
62+
}
7863

79-
public object[] GetValues(Expression expression)
80-
{
81-
if (expression == null)
82-
throw new ArgumentNullException("expression");
83-
84-
object[] values;
85-
86-
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
87-
values = expression.DataMembers.Cast<Expression>().ToArray();
88-
else
89-
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
90-
return values;
91-
}
64+
public int[] GetDimensions(Expression expression)
65+
{
66+
if (expression == null)
67+
throw new ArgumentNullException("expression");
68+
69+
string dims = expression.Value;
70+
dims = dims.Substring(dims.IndexOf(LeftBracket) + 1);
71+
dims = dims.Substring(0, dims.IndexOf(RightBracket));
72+
73+
int[] dimenstions = dims.Split(',').Select(X => ParseDimension(X.Trim())).ToArray();
74+
75+
return dimenstions;
76+
}
9277

93-
#endregion
94-
}
95-
}
78+
public int ParseDimension(string value)
79+
{
80+
if (value == null)
81+
throw new ArgumentNullException("value");
82+
83+
if (value.StartsWith("0x"))
84+
return int.Parse(value.Substring(2), System.Globalization.NumberStyles.HexNumber);
85+
else
86+
return int.Parse(value);
87+
}
88+
89+
public object[] GetValues(Expression expression)
90+
{
91+
if (expression == null)
92+
throw new ArgumentNullException("expression");
93+
94+
object[] values;
95+
96+
if (expression.DataMembers.Item(1).Type.IndexOf(LeftBracket) != -1)
97+
values = expression.DataMembers.Cast<Expression>().ToArray();
98+
else
99+
values = expression.DataMembers.Cast<Expression>().Select(E => E.Value).ToArray();
100+
return values;
101+
}
102+
103+
#endregion
104+
}
105+
}

0 commit comments

Comments
 (0)