// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.CodeAnalysis.Shared.TestHooks; using Microsoft.VisualStudio.IntegrationTest.Utilities; using Microsoft.VisualStudio.IntegrationTest.Utilities.Input; using Xunit; namespace Roslyn.VisualStudio.IntegrationTests.CSharp { [Collection(nameof(SharedIntegrationHostFixture))] public class CSharpReplIntellisense : AbstractInteractiveWindowTest { public CSharpReplIntellisense(VisualStudioInstanceFactory instanceFactory) : base(instanceFactory) { VisualStudio.Workspace.SetUseSuggestionMode(true); } [Fact] public void VerifyCompletionListOnEmptyTextAtTopLevel() { VisualStudio.InteractiveWindow.InvokeCompletionList(); VisualStudio.InteractiveWindow.Verify.CompletionItemsExist("var", "public", "readonly", "goto"); } [Fact] public void VerifySharpRCompletionList() { VisualStudio.InteractiveWindow.InsertCode("#r \""); VisualStudio.InteractiveWindow.InvokeCompletionList(); VisualStudio.InteractiveWindow.Verify.CompletionItemsExist("System"); } [Fact] public void VerifyCommitCompletionOnTopLevel() { VisualStudio.InteractiveWindow.InsertCode("pub"); VisualStudio.InteractiveWindow.InvokeCompletionList(); VisualStudio.InteractiveWindow.Verify.CompletionItemsExist("public"); VisualStudio.SendKeys.Send(VirtualKey.Tab); VisualStudio.InteractiveWindow.Verify.LastReplInput("public"); VisualStudio.SendKeys.Send(VirtualKey.Escape); } [Fact] public void VerifyCompletionListForAmbiguousParsingCases() { VisualStudio.InteractiveWindow.InsertCode(@"class C { } public delegate R Del(T arg); Del