From 717a34a6bec662ce74dfe6c0c348877e6a32ef23 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Mon, 2 May 2011 18:28:42 +0200 Subject: [PATCH] fix "End"-insertion for SyncLock --- .../VBNetFormattingStrategy.cs | 2 +- .../Test/FormattingStrategy/EndSubTests.cs | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs b/src/AddIns/BackendBindings/VBNetBinding/Project/Src/FormattingStrategy/VBNetFormattingStrategy.cs index ea9f3c51d9..0804deb2a1 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.Using, + Tokens.If, Tokens.For, Tokens.Do, Tokens.While, Tokens.With, Tokens.Select, Tokens.Try, Tokens.Using, Tokens.SyncLock, 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 1ce086e7a1..01d104c1b8 100644 --- a/src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs +++ b/src/AddIns/BackendBindings/VBNetBinding/Test/FormattingStrategy/EndSubTests.cs @@ -117,6 +117,35 @@ namespace ICSharpCode.VBNetBinding.Tests RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n'); } + [Test] + public void EndSyncLock() + { + string code = "Public Class Foo\r\n" + + "\tPublic Sub Bar\r\n" + + "\t\tSyncLock a\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 = "SyncLock a\r\n"; + int cursorOffset = code.IndexOf(bar) + bar.Length; + + string expectedCode = "Public Class Foo\r\n" + + "\tPublic Sub Bar\r\n" + + "\t\tSyncLock a\r\n" + + "\t\t\t\r\n" + + "\t\tEnd SyncLock\r\n" + + "\tEnd Sub\r\n" + + "End Class"; + + int expectedOffset = ("Public Class Foo\r\n" + + "\tPublic Sub Bar\r\n" + + "\t\tSyncLock a\r\n" + + "\t\t\t").Length; + + RunTest(code, cursorOffset, expectedCode, expectedOffset, '\n'); + } + [Test] public void SingleLineIf() {