Skip to content

Commit e80c477

Browse files
committed
Merge branch 'next' of https://github.com/rubberduck-vba/rubberduck into next
2 parents 2c952ac + d9ac266 commit e80c477

File tree

143 files changed

+12295
-10058
lines changed

Some content is hidden

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

143 files changed

+12295
-10058
lines changed

CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,5 @@ If you contribute a translation for a brand new previously unsupported language,
9595

9696
Well ... the eternal gratitude of all Rubberduck users for one :wink:
9797
Aside from that, all contributors are explicitly listed by name (or alias) in the "About Rubberduck" window.
98-
In addition to that, there is some [Contributor-only Rubberduck swag](https://gofundme.com/rubberduckvba), that can be sent to you, at the discretion of @retailcoder.. while supplies last.
98+
99+
We ran a [fundraiser](https://gofundme.com/rubberduckvba) last summer, and had t-sihrts, mugs, pens, and stickers made - the goods are now unfortunately depleted; we'll probably run another campaign next year!

RubberduckTests/Binding/IndexDefaultBindingTests.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,14 @@ End Property
5050
var enclosingProject = enclosingProjectBuilder.Build();
5151
builder.AddProject(enclosingProject);
5252
var vbe = builder.Build();
53-
var state = Parse(vbe);
54-
55-
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.PropertyGet && d.IdentifierName == "Test2");
53+
using (var state = Parse(vbe))
54+
{
55+
var declaration =
56+
state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.PropertyGet &&
57+
d.IdentifierName == "Test2");
5658

57-
Assert.AreEqual(1, declaration.References.Count());
59+
Assert.AreEqual(1, declaration.References.Count());
60+
}
5861
}
5962

6063
[TestCategory("Binding")]
@@ -79,11 +82,15 @@ End Property
7982
var enclosingProject = enclosingProjectBuilder.Build();
8083
builder.AddProject(enclosingProject);
8184
var vbe = builder.Build();
82-
var state = Parse(vbe);
8385

84-
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.PropertyGet && d.IdentifierName == "Test1");
86+
using (var state = Parse(vbe))
87+
{
88+
var declaration =
89+
state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.PropertyGet &&
90+
d.IdentifierName == "Test1");
8591

86-
Assert.AreEqual(1, declaration.References.Count());
92+
Assert.AreEqual(1, declaration.References.Count());
93+
}
8794
}
8895

8996
private static RubberduckParserState Parse(Mock<IVBE> vbe)

RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ public void LExpressionIsVariablePropertyOrFunction()
3131
var enclosingProject = enclosingProjectBuilder.Build();
3232
builder.AddProject(enclosingProject);
3333
var vbe = builder.Build();
34-
var state = Parse(vbe);
34+
using (var state = Parse(vbe))
35+
{
3536

36-
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
37+
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
3738

38-
Assert.AreEqual(1, declaration.References.Count());
39+
Assert.AreEqual(1, declaration.References.Count());
40+
}
3941
}
4042

4143
[TestCategory("Binding")]
@@ -51,11 +53,12 @@ public void LExpressionIsProject()
5153
var enclosingProject = enclosingProjectBuilder.Build();
5254
builder.AddProject(enclosingProject);
5355
var vbe = builder.Build();
54-
var state = Parse(vbe);
55-
56-
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
56+
using (var state = Parse(vbe))
57+
{
58+
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
5759

58-
Assert.AreEqual(1, declaration.References.Count());
60+
Assert.AreEqual(1, declaration.References.Count());
61+
}
5962
}
6063

6164
[TestCategory("Binding")]
@@ -71,11 +74,12 @@ public void LExpressionIsProceduralModule()
7174
var enclosingProject = enclosingProjectBuilder.Build();
7275
builder.AddProject(enclosingProject);
7376
var vbe = builder.Build();
74-
var state = Parse(vbe);
75-
76-
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
77+
using (var state = Parse(vbe))
78+
{
79+
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
7780

78-
Assert.AreEqual(1, declaration.References.Count());
81+
Assert.AreEqual(1, declaration.References.Count());
82+
}
7983
}
8084

8185
[TestCategory("Binding")]
@@ -91,11 +95,12 @@ public void LExpressionIsEnum()
9195
var enclosingProject = enclosingProjectBuilder.Build();
9296
builder.AddProject(enclosingProject);
9397
var vbe = builder.Build();
94-
var state = Parse(vbe);
95-
96-
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.EnumerationMember && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
98+
using (var state = Parse(vbe))
99+
{
100+
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.EnumerationMember && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME);
97101

98-
Assert.AreEqual(1, declaration.References.Count());
102+
Assert.AreEqual(1, declaration.References.Count());
103+
}
99104
}
100105

101106
private static RubberduckParserState Parse(Mock<IVBE> vbe)
@@ -112,20 +117,20 @@ private static RubberduckParserState Parse(Mock<IVBE> vbe)
112117

113118
private string CreateFunction(string functionName)
114119
{
115-
return string.Format(@"
116-
Public Function {0}() As Variant
120+
return $@"
121+
Public Function {functionName}() As Variant
117122
TestEnumMember
118123
End Function
119-
", functionName);
124+
";
120125
}
121126

122127
private string CreateEnumType(string typeName, string memberName)
123128
{
124-
return string.Format(@"
125-
Public Enum {0}
126-
{1}
129+
return $@"
130+
Public Enum {typeName}
131+
{memberName}
127132
End Enum
128-
", typeName, memberName);
133+
";
129134
}
130135
}
131136
}

RubberduckTests/Binding/MemberAccessProcedurePointerBindingTests.cs

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,59 +15,58 @@ namespace RubberduckTests.Binding
1515
public class MemberAccessProcedurePointerBindingTests
1616
{
1717
private const string BINDING_TARGET_NAME = "BindingTarget";
18-
private const string TEST_CLASS_NAME = "TestClass";
18+
private const string TEST_CLASS_NAME = "TestClass";
1919

20-
[TestCategory("Binding")]
21-
[TestMethod]
22-
public void ProceduralModuleWithAccessibleMember()
20+
[TestCategory("Binding")]
21+
[TestMethod]
22+
public void ProceduralModuleWithAccessibleMember()
23+
{
24+
var builder = new MockVbeBuilder();
25+
var enclosingProjectBuilder = builder.ProjectBuilder(BINDING_TARGET_NAME, ProjectProtection.Unprotected);
26+
string code = CreateCaller(TEST_CLASS_NAME) + Environment.NewLine + CreateCallee();
27+
enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, ComponentType.StandardModule, code);
28+
var enclosingProject = enclosingProjectBuilder.Build();
29+
builder.AddProject(enclosingProject);
30+
var vbe = builder.Build();
31+
using (var state = Parse(vbe))
2332
{
24-
var builder = new MockVbeBuilder();
25-
var enclosingProjectBuilder = builder.ProjectBuilder(BINDING_TARGET_NAME, ProjectProtection.Unprotected);
26-
string code = CreateCaller(TEST_CLASS_NAME) + Environment.NewLine + CreateCallee();
27-
enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, ComponentType.StandardModule, code);
28-
var enclosingProject = enclosingProjectBuilder.Build();
29-
builder.AddProject(enclosingProject);
30-
var vbe = builder.Build();
31-
var state = Parse(vbe);
32-
33-
Declaration declaration;
34-
35-
declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.ProceduralModule && d.IdentifierName == TEST_CLASS_NAME);
33+
var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.ProceduralModule && d.IdentifierName == TEST_CLASS_NAME);
3634
Assert.AreEqual(1, declaration.References.Count(), "Procedural Module should have reference");
3735

3836
declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_NAME);
3937
Assert.AreEqual(1, declaration.References.Count(), "Function should have reference");
4038
}
39+
}
4140

42-
private static RubberduckParserState Parse(Mock<IVBE> vbe)
41+
private static RubberduckParserState Parse(Mock<IVBE> vbe)
42+
{
43+
var parser = MockParser.Create(vbe.Object);
44+
parser.Parse(new CancellationTokenSource());
45+
if (parser.State.Status != ParserState.Ready)
4346
{
44-
var parser = MockParser.Create(vbe.Object);
45-
parser.Parse(new CancellationTokenSource());
46-
if (parser.State.Status != ParserState.Ready)
47-
{
48-
Assert.Inconclusive("Parser state should be 'Ready', but returns '{0}'.", parser.State.Status);
49-
}
50-
var state = parser.State;
51-
return state;
47+
Assert.Inconclusive("Parser state should be 'Ready', but returns '{0}'.", parser.State.Status);
5248
}
49+
var state = parser.State;
50+
return state;
51+
}
5352

54-
private string CreateCaller(string moduleName)
55-
{
56-
return string.Format(@"
53+
private string CreateCaller(string moduleName)
54+
{
55+
return $@"
5756
Declare PtrSafe Function EnumWindows Lib ""user32"" (ByVal lpEnumFunc As LongPtr, ByVal lParam As LongPtr) As Long
5857
5958
Public Sub Caller()
60-
EnumWindows AddressOf {0}.{1}, 1
59+
EnumWindows AddressOf {moduleName}.{BINDING_TARGET_NAME}, 1
6160
End Sub
62-
", moduleName, BINDING_TARGET_NAME);
63-
}
61+
";
62+
}
6463

65-
private string CreateCallee()
66-
{
67-
return string.Format(@"
68-
Public Function {0}() As LongPtr
64+
private string CreateCallee()
65+
{
66+
return $@"
67+
Public Function {BINDING_TARGET_NAME}() As LongPtr
6968
End Function
70-
", BINDING_TARGET_NAME);
71-
}
69+
";
7270
}
71+
}
7372
}

0 commit comments

Comments
 (0)