diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs index 772c827abb..f1a315456b 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs @@ -83,7 +83,7 @@ namespace ICSharpCode.VBNetBinding new int[] { Tokens.Class, Tokens.Module, Tokens.Namespace, Tokens.Interface, Tokens.Structure, Tokens.Sub, Tokens.Function, Tokens.Operator, Tokens.Enum, - Tokens.If, Tokens.For, Tokens.Do, Tokens.While, Tokens.With, Tokens.Select, Tokens.Try, + Tokens.If, Tokens.For, Tokens.Do, Tokens.While, Tokens.With, Tokens.Select, Tokens.Try, Tokens.Using, Tokens.Property, Tokens.Get, Tokens.Set }); #endregion diff --git a/src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs b/src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs index a905916c23..1ce086e7a1 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs @@ -88,6 +88,35 @@ namespace ICSharpCode.VBNetBinding.Tests RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n'); } + [Test] + public void EndUsing() + { + string code = "Public Class Foo\r\n" + + "\tPublic Sub Bar\r\n" + + "\t\tUsing a As New StreamReader()\r\n" + + "\r\n" + // This extra new line is required. This is the new line just entered by the user. + "\tEnd Sub\r\n" + + "End Class"; + + string bar = "Using a As New StreamReader()\r\n"; + int cursorOffset = code.IndexOf(bar) + bar.Length; + + string expectedCode = "Public Class Foo\r\n" + + "\tPublic Sub Bar\r\n" + + "\t\tUsing a As New StreamReader()\r\n" + + "\t\t\t\r\n" + + "\t\tEnd Using\r\n" + + "\tEnd Sub\r\n" + + "End Class"; + + int expectedOffset = ("Public Class Foo\r\n" + + "\tPublic Sub Bar\r\n" + + "\t\tUsing a As New StreamReader()\r\n" + + "\t\t\t").Length; + + RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n'); + } + [Test] public void SingleLineIf() {