static void Test(string input, string expectedOutput) { input = input.Replace("\r\n", "\n"); expectedOutput = expectedOutput.Replace("\r\n", "\n"); int caretPositon = input.IndexOf('$'); if (caretPositon > 0) { input = input.Substring(0, caretPositon) + input.Substring(caretPositon + 1); } var document1 = new StringBuilderDocument(input); int expectedCaretPosition = expectedOutput.IndexOf('$'); if (expectedCaretPosition > 0) { expectedOutput = expectedOutput.Substring(0, expectedCaretPosition) + expectedOutput.Substring(expectedCaretPosition + 1); } var fixer = new ConstructFixer(FormattingOptionsFactory.CreateMono(), new TextEditorOptions { EolMarker = "\n" }); int newCaretPosition; Assert.IsTrue(fixer.TryFix(document1, caretPositon, out newCaretPosition)); var isEqual = expectedOutput == document1.Text.Replace("\r\n", "\n"); if (!isEqual) { System.Console.WriteLine("expected:"); System.Console.WriteLine(expectedOutput); System.Console.WriteLine("was:"); System.Console.WriteLine(document1.Text); } Assert.IsTrue(isEqual); Assert.AreEqual(expectedCaretPosition, newCaretPosition); }
public override void CompleteStatement (MonoDevelop.Ide.Gui.Document doc) { var fixer = new ConstructFixer (doc.GetFormattingOptions (), doc.Editor.CreateNRefactoryTextEditorOptions ()); int newOffset; if (fixer.TryFix (doc.Editor.Document, doc.Editor.Caret.Offset, out newOffset)) { doc.Editor.Caret.Offset = newOffset; } }