Skip to content

Commit ab56bcf

Browse files
committed
fixes wrongful bail-out
1 parent 0a52a91 commit ab56bcf

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

Rubberduck.Core/AutoComplete/Service/SelfClosingPairHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public override CodeString Handle(AutoCompleteEventArgs e, AutoCompleteSettings
6363
result = result.ReplaceLine(result.CaretPosition.StartLine, currentLine.TrimEnd());
6464
}
6565

66-
if (e.Character != '\b' && !result.CaretLine.EndsWith($"{pair.OpeningChar}{pair.ClosingChar}"))
66+
if (pair.OpeningChar == '(' && e.Character != '\b' && !result.CaretLine.EndsWith($"{pair.OpeningChar}{pair.ClosingChar}"))
6767
{
6868
// VBE eats it. just bail out.
6969
return null;

RubberduckTests/AutoComplete/SelfClosingPairCompletionTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ public void PlacesCaretBetweenOpeningAndClosingChars()
3434
Assert.AreEqual(expected, result);
3535
}
3636

37+
[Test]
38+
public void PlacesCaretBetweenOpeningAndClosingChars_NestedPair()
39+
{
40+
var pair = new SelfClosingPair('"', '"');
41+
var input = pair.OpeningChar;
42+
var original = "MsgBox (|)".ToCodeString();
43+
var expected = "MsgBox (\"|\")".ToCodeString();
44+
45+
var result = Run(pair, original, input);
46+
Assert.AreEqual(expected, result);
47+
}
48+
3749
[Test]
3850
public void PlacesCaretBetweenOpeningAndClosingChars_PreservesPosition()
3951
{

0 commit comments

Comments
 (0)