Skip to content

Commit 8c69af0

Browse files
committed
fixes #4468
1 parent b8c14a9 commit 8c69af0

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

Rubberduck.Core/AutoComplete/Service/SelfClosingPairHandler.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,13 @@ private bool HandleInternal(AutoCompleteEventArgs e, CodeString original, SelfCl
8383
result = result.ReplaceLine(result.CaretPosition.StartLine, currentLine.TrimEnd());
8484
}
8585

86-
if (pair.OpeningChar == '(' && e.Character != '\b' &&
86+
if (pair.OpeningChar == '(' &&
87+
e.Character == pair.OpeningChar &&
8788
!result.CaretLine.EndsWith($"{pair.OpeningChar}{pair.ClosingChar}"))
8889
{
8990
// VBE eats it. just bail out.
90-
return true;
91+
result = null;
92+
return false;
9193
}
9294

9395
return true;

RubberduckTests/AutoComplete/SelfClosingPairHandlerTests.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,16 @@ public void GivenValidInput_InvokesSCP()
6262
Assert.IsTrue(Run(original, original, input, rePrettified, out var result));
6363
Assert.IsNotNull(result);
6464
}
65+
66+
[Test]
67+
public void GivenOpeningParenthesisOnOtherwiseNonEmptyLine_ReturnsFalse()
68+
{
69+
var input = '(';
70+
var original = "foo = DateSerial(Year|)".ToCodeString();
71+
var rePrettified = "foo = DateSerial(Year(|))".ToCodeString();
72+
73+
Assert.IsFalse(Run(original, original, input, rePrettified, out var result));
74+
Assert.IsNull(result);
75+
}
6576
}
6677
}

0 commit comments

Comments
 (0)