public void SendSingleLineSubmissionToInteractive() { VisualStudio.InteractiveWindow.InsertCode("// scenario 1"); var project = new Project(ProjectName); VisualStudio.SolutionExplorer.OpenFile(project, FileName); VisualStudio.Editor.PlaceCaret("/* 1 */", charsOffset: 1); VisualStudio.Editor.PlaceCaret("/* 2 */", charsOffset: -1, extendSelection: true); VisualStudio.ExecuteCommand(WellKnownCommandNames.InteractiveConsole_ExecuteInInteractive); VisualStudio.InteractiveWindow.WaitForLastReplOutput("int x = 1;"); VisualStudio.InteractiveWindow.ClearReplText(); VisualStudio.InteractiveWindow.SubmitText("x.ToString()"); VisualStudio.InteractiveWindow.WaitForLastReplOutputContains("\"1\""); }
public void NavigationBetweenKeywords() { VisualStudio.Editor.SetText(@" Class C Sub Main() For a = 0 To 1 Step 1 For b = 0 To 2 Next b, a End Sub End Class"); Verify("To", 3); VisualStudio.ExecuteCommand("Edit.NextHighlightedReference"); VisualStudio.Editor.Verify.CurrentLineText("For a = 0 To 1 Step$$ 1", assertCaretPosition: true, trimWhitespace: true); }
public void ExecuteSingleLineSubmissionInInteractiveWhilePreservingReplSubmissionBuffer() { VisualStudio.InteractiveWindow.InsertCode("// scenario 5"); var project = new Project(ProjectName); VisualStudio.SolutionExplorer.OpenFile(project, FileName); VisualStudio.Editor.PlaceCaret("/* 1 */", charsOffset: 1); VisualStudio.Editor.PlaceCaret("/* 2 */", charsOffset: -1, extendSelection: true); VisualStudio.ExecuteCommand(WellKnownCommandNames.InteractiveConsole_ExecuteInInteractive); VisualStudio.InteractiveWindow.WaitForLastReplInputContains("// scenario 5"); VisualStudio.InteractiveWindow.ClearReplText(); VisualStudio.InteractiveWindow.SubmitText("x"); VisualStudio.InteractiveWindow.WaitForLastReplOutput("1"); }
public void SimpleExtractMethod() { VisualStudio.Editor.SetText(TestSource); VisualStudio.Editor.PlaceCaret("Console", charsOffset: -1); VisualStudio.Editor.PlaceCaret("World", charsOffset: 4, extendSelection: true); VisualStudio.ExecuteCommand(WellKnownCommandNames.Refactor_ExtractMethod); var expectedMarkup = @" using System; public class Program { public int Method() { [|NewMethod|](); int a; int b; a = 5; b = 10; int result = a * b; return result; } private static void [|NewMethod|]() { Console.WriteLine(""Hello World""); } }"; MarkupTestFile.GetSpans( expectedMarkup, out var expectedText, out ImmutableArray <TextSpan> spans ); VisualStudio.Editor.Verify.TextContains(expectedText); AssertEx.SetEqual( spans, VisualStudio.Editor.GetTagSpans(VisualStudio.InlineRenameDialog.ValidRenameTag) ); VisualStudio.Editor.SendKeys("SayHello", VirtualKey.Enter); VisualStudio.Editor.Verify.TextContains( @"private static void SayHello() { Console.WriteLine(""Hello World""); }" ); }
private void CommitOnSave() { VisualStudio.Editor.SetText(@"Module Module1 Sub Main() End Sub End Module "); VisualStudio.Editor.PlaceCaret("(", charsOffset: 1); VisualStudio.Editor.SendKeys("x as integer", VirtualKey.Tab); VisualStudio.Editor.SendKeys(new KeyPress(VirtualKey.S, ShiftState.Ctrl)); VisualStudio.Editor.Verify.TextContains(@"Sub Main(x As Integer)"); VisualStudio.ExecuteCommand(WellKnownCommandNames.Edit_Undo); VisualStudio.Editor.Verify.TextContains(@"Sub Main(x As Integer)"); VisualStudio.Editor.Verify.CaretPosition(45); }
public void CtrlAltSpaceOption() { VisualStudio.Editor.SetUseSuggestionMode(false); VisualStudio.SendKeys.Send("Nam Foo"); VisualStudio.Editor.Verify.CurrentLineText( "Namespace Foo$$", assertCaretPosition: true ); ClearEditor(); VisualStudio.ExecuteCommand(WellKnownCommandNames.Edit_ToggleCompletionMode); VisualStudio.SendKeys.Send("Nam Foo"); VisualStudio.Editor.Verify.CurrentLineText("Nam Foo$$", assertCaretPosition: true); }
public void Navigation() { var text = @" class C { void M() { int x; x = 3; } }"; VisualStudio.Editor.SetText(text); VisualStudio.Editor.PlaceCaret("x"); VisualStudio.Workspace.WaitForAsyncOperations(Helper.HangMitigatingTimeout, FeatureAttribute.ReferenceHighlighting); VisualStudio.ExecuteCommand("Edit.NextHighlightedReference"); VisualStudio.Workspace.WaitForAsyncOperations(Helper.HangMitigatingTimeout, FeatureAttribute.ReferenceHighlighting); VisualStudio.Editor.Verify.CurrentLineText("x$$ = 3;", assertCaretPosition: true, trimWhitespace: true); }
public void CtrlAltSpace() { VisualStudio.Workspace.SetUseSuggestionMode(false); VisualStudio.Editor.SendKeys("nam Goo", VirtualKey.Enter); VisualStudio.Editor.SendKeys('{', VirtualKey.Enter, '}', VirtualKey.Up, VirtualKey.Enter); VisualStudio.Editor.SendKeys("pu cla Program", VirtualKey.Enter); VisualStudio.Editor.SendKeys('{', VirtualKey.Enter, '}', VirtualKey.Up, VirtualKey.Enter); VisualStudio.Editor.SendKeys("pub stati voi Main(string[] args)", VirtualKey.Enter); VisualStudio.Editor.SendKeys('{', VirtualKey.Enter, '}', VirtualKey.Up, VirtualKey.Enter); VisualStudio.Editor.SendKeys("System.Console.writeline();"); VisualStudio.Editor.Verify.CurrentLineText("System.Console.WriteLine();$$", assertCaretPosition: true); VisualStudio.Editor.SendKeys(VirtualKey.Home, Shift(VirtualKey.End), VirtualKey.Delete); VisualStudio.ExecuteCommand(WellKnownCommandNames.Edit_ToggleCompletionMode); VisualStudio.Editor.SendKeys("System.Console.writeline();"); VisualStudio.Editor.Verify.CurrentLineText("System.Console.writeline();$$", assertCaretPosition: true); }
public void RemoveAndSort() { SetUpEditor(@"Imports System.Linq$$ Imports System Imports System.Runtime.InteropServices Imports System.Runtime.CompilerServices Class Test Sub Method(<CallerMemberName> Optional str As String = Nothing) Dim data As COMException End Sub End Class"); VisualStudio.ExecuteCommand("Edit.RemoveAndSort"); VisualStudio.Editor.Verify.TextContains(@"Imports System.Runtime.CompilerServices Imports System.Runtime.InteropServices Class Test Sub Method(<CallerMemberName> Optional str As String = Nothing) Dim data As COMException End Sub End Class"); }
public void SimpleExtractMethod() { VisualStudio.Editor.SetText(TestSource); VisualStudio.Editor.PlaceCaret("Console", charsOffset: -1); VisualStudio.Editor.PlaceCaret("Hello VB!", charsOffset: 3, extendSelection: true); VisualStudio.ExecuteCommand(WellKnownCommandNames.Refactor_ExtractMethod); var expectedMarkup = @" Imports System Imports System.Collections.Generic Imports System.Linq Module Program Sub Main(args As String()) [|NewMethod|]() End Sub Private Sub [|NewMethod|]() Console.WriteLine(""Hello VB!"") End Sub Function F() As Integer Dim a As Integer Dim b As Integer a = 5 b = 5 Dim result = a * b Return result End Function End Module"; MarkupTestFile.GetSpans(expectedMarkup, out var expectedText, out ImmutableArray <TextSpan> spans); VisualStudio.Editor.Verify.TextContains(expectedText); VisualStudio.Workspace.WaitForAsyncOperations(Helper.HangMitigatingTimeout, FeatureAttribute.Rename); AssertEx.SetEqual(spans, VisualStudio.Editor.GetTagSpans(VisualStudio.InlineRenameDialog.ValidRenameTag)); VisualStudio.Editor.SendKeys("SayHello", VirtualKey.Enter); VisualStudio.Editor.Verify.TextContains(@" Private Sub SayHello() Console.WriteLine(""Hello VB!"") End Sub"); }
public void VerifyNavBar3() { SetUpEditor(@" struct S$$ { int Goo() { } void Bar() { } }"); VisualStudio.Editor.ExpandMemberNavBar(); var expectedItems = new[] { "Bar()", "Goo()", }; Assert.Equal(expectedItems, VisualStudio.Editor.GetMemberNavBarItems()); VisualStudio.Editor.SelectMemberNavBarItem("Bar()"); VisualStudio.Editor.Verify.CurrentLineText("void $$Bar() { }", assertCaretPosition: true, trimWhitespace: true); VisualStudio.ExecuteCommand("Edit.LineUp"); VerifyRightSelected("Goo()"); }
public void VerifyNavBar() { SetUpEditor(TestSource); VisualStudio.Editor.PlaceCaret("Goo", charsOffset: 1); VerifyLeftSelected("C"); VerifyRightSelected("Goo"); VisualStudio.Editor.ExpandTypeNavBar(); var expectedItems = new[] { "C", "Domain", "S" }; Assert.Equal(expectedItems, VisualStudio.Editor.GetTypeNavBarItems()); VisualStudio.Editor.SelectTypeNavBarItem("S"); VisualStudio.Editor.Verify.CaretPosition(112); VisualStudio.Editor.Verify.CurrentLineText("Structure $$S", assertCaretPosition: true); VisualStudio.ExecuteCommand("Edit.LineDown"); VerifyRightSelected("A"); VisualStudio.Editor.ExpandMemberNavBar(); expectedItems = new[] { "A", "B", }; Assert.Equal(expectedItems, VisualStudio.Editor.GetMemberNavBarItems()); VisualStudio.Editor.SelectMemberNavBarItem("B"); VisualStudio.Editor.Verify.CaretPosition(169); VisualStudio.Editor.Verify.CurrentLineText("Public Property $$B As Integer", assertCaretPosition: true, trimWhitespace: true); }
public void ExtractMethodWithTriviaSelected() { VisualStudio.Editor.SetText(TestSource); VisualStudio.Editor.PlaceCaret("int result", charsOffset: -8); VisualStudio.Editor.PlaceCaret("result;", charsOffset: 4, extendSelection: true); VisualStudio.ExecuteCommand(WellKnownCommandNames.Refactor_ExtractMethod); VisualStudio.Workspace.WaitForAsyncOperations(Helper.HangMitigatingTimeout, FeatureAttribute.ExtractMethod); var expectedMarkup = @" using System; public class Program { public int Method() { Console.WriteLine(""Hello World""); int a; int b; a = 5; b = 10; return [|NewMethod|](a, b); } private static int [|NewMethod|](int a, int b) { return a * b; } }"; MarkupTestFile.GetSpans(expectedMarkup, out var expectedText, out ImmutableArray <TextSpan> spans); Assert.Equal(expectedText, VisualStudio.Editor.GetText()); AssertEx.SetEqual(spans, VisualStudio.Editor.GetTagSpans(VisualStudio.InlineRenameDialog.ValidRenameTag)); VisualStudio.Editor.SendKeys("SayHello", VirtualKey.Enter); VisualStudio.Editor.Verify.TextContains(@"private static int SayHello(int a, int b) { return a * b; }"); }
public void TestSplitWindow() { VisualStudio.Editor.SetText(@" class C { public void M(int i) { } private C this[int index] { get { return null; } set { } } } struct S { int Goo() { } void Bar() { } }"); VisualStudio.ExecuteCommand("Window.Split"); VisualStudio.Editor.PlaceCaret("this", charsOffset: 1); VerifyLeftSelected("C"); VerifyRightSelected("this[int index]"); VisualStudio.ExecuteCommand("Window.NextSplitPane"); VisualStudio.Editor.PlaceCaret("Goo", charsOffset: 1); VerifyLeftSelected("S"); VerifyRightSelected("Goo()"); }
public void VerifyProjectConfigChange() { VisualStudio.Editor.SetText( @" namespace ClassLibrary1 { public class Class1 { #if DEBUG void Goo() { } #else void Bar() { } #endif } } " ); VisualStudio.ExecuteCommand( WellKnownCommandNames.Build_SolutionConfigurations, argument: "Debug" ); VisualStudio.Editor.PlaceCaret("Goo"); VisualStudio.Editor.Verify.CurrentTokenType(tokenType: "method name"); VisualStudio.Editor.PlaceCaret("Bar"); VisualStudio.Editor.Verify.CurrentTokenType(tokenType: "excluded code"); VisualStudio.Editor.MoveCaret(0); VisualStudio.ExecuteCommand("Build.SolutionConfigurations", argument: "Release"); VisualStudio.Editor.PlaceCaret("Goo"); VisualStudio.Editor.Verify.CurrentTokenType(tokenType: "excluded code"); VisualStudio.Editor.PlaceCaret("Bar"); VisualStudio.Editor.Verify.CurrentTokenType(tokenType: "method name"); }
public void ResetInteractiveFromProjectAndVerify() { var assembly = new ProjectUtils.AssemblyReference("System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"); var project = new ProjectUtils.Project(ProjectName); VisualStudio.SolutionExplorer.AddMetadataReference(assembly, project); VisualStudio.SolutionExplorer.SelectItem(ProjectName); VisualStudio.ExecuteCommand(WellKnownCommandNames.ProjectAndSolutionContextMenus_Project_ResetCSharpInteractiveFromProject); // Waiting for a long operation: build + reset from project VisualStudio.InteractiveWindow.WaitForReplOutput("using TestProj;"); VisualStudio.InteractiveWindow.SubmitText("x"); VisualStudio.InteractiveWindow.WaitForLastReplOutputContains("CS0103"); VisualStudio.InteractiveWindow.SubmitText("(new TestProj.C()).M()"); VisualStudio.InteractiveWindow.WaitForLastReplOutput("\"C.M()\""); VisualStudio.InteractiveWindow.SubmitText("System.Windows.Forms.Form f = new System.Windows.Forms.Form(); f.Text = \"goo\";"); VisualStudio.InteractiveWindow.SubmitText("f.Text"); VisualStudio.InteractiveWindow.WaitForLastReplOutput("\"goo\""); VisualStudio.Workspace.WaitForAsyncOperations(Helper.HangMitigatingTimeout, FeatureAttribute.SolutionCrawler); }
public new void Dispose() { VisualStudio.ExecuteCommand(WellKnownCommandNames.Edit_SelectionCancel); base.Dispose(); }
public override Task DisposeAsync() { VisualStudio.ExecuteCommand(WellKnownCommandNames.Edit_SelectionCancel); return(base.DisposeAsync()); }