Beispiel #1
0
        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;
			}
		}