public async Task NonUniqueNameTest() { var content = @"x <- select()"; using (new RHostScript(Services)) { var session = await TriggerSessionAsync(content, 8); session.ApplicableSpan.Should().BeNull(); session.QuickInfoContent.Should().BeEmpty(); await EnsurePackageInstalled("MASS"); await EnsurePackageInstalled("dplyr"); await Workflow.RSession.ExecuteAsync("library(MASS)"); EventsPump.DoEvents(500); session = await TriggerSessionAsync(content, 8); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(formula"); await Workflow.RSession.ExecuteAsync("library(dplyr)"); EventsPump.DoEvents(500); session = await TriggerSessionAsync(content, 8); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(.data"); } }
public async Task LoadUnloadPackageTest() { var content = @"do()"; using (new RHostScript(Services)) { await EnsurePackageInstalled("dplyr"); var session = await TriggerSessionAsync(content, 1); session.ApplicableSpan.Should().BeNull(); session.QuickInfoContent.Should().BeEmpty(); await Workflow.RSession.ExecuteAsync("library(dplyr)"); session = await TriggerSessionAsync(content, 1); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("do(.data"); await Workflow.RSession.ExecuteAsync("detach(\"package:dplyr\", unload = TRUE)"); EventsPump.DoEvents(1000); session = await TriggerSessionAsync(content, 1); session.QuickInfoContent.Should().BeEmpty(); } }
public async Task NonUniqueNameTest() { string content = @"x <- select()"; using (var hostScript = new RHostScript(Workflow.RSessions)) { //await Workflow.RSession.ExecuteAsync("install.packages('dplyr')"); var session = await TriggerSessionAsync(content, 12); var parametersInfo = SignatureHelp.GetParametersInfoFromBuffer(session.Ast, session.TextBuffer.CurrentSnapshot, 10); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().BeEmpty(); await Workflow.RSession.ExecuteAsync("library(MASS)"); EventsPump.DoEvents(500); session = await TriggerSessionAsync(content, 12); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(formula"); await Workflow.RSession.ExecuteAsync("library(dplyr)"); EventsPump.DoEvents(500); session = await TriggerSessionAsync(content, 12); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("select(.data"); } }
public async Task LoadUnloadPackageTest() { string content = @"do()"; using (var hostScript = new RHostScript(Workflow.RSessions)) { //await Workflow.RSession.ExecuteAsync("install.packages('dplyr')"); var session = await TriggerSessionAsync(content, 3); var parametersInfo = SignatureHelp.GetParametersInfoFromBuffer(session.Ast, session.TextBuffer.CurrentSnapshot, 10); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().BeEmpty(); await Workflow.RSession.ExecuteAsync("library(dplyr)"); session = await TriggerSessionAsync(content, 3); session.ApplicableSpan.Should().NotBeNull(); session.QuickInfoContent.Should().ContainSingle().Which.ToString().Should().StartWith("do(.data"); await Workflow.RSession.ExecuteAsync("detach(\"package:dplyr\", unload = TRUE)"); EventsPump.DoEvents(1000); session = await TriggerSessionAsync(content, 3); session.QuickInfoContent.Should().BeEmpty(); } }
public async Task PlotALot() { var sessionProvider = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>(); var app = new RHostClientPlotTestApp(); using (var script = new RHostScript(sessionProvider, app)) { var history = new PlotHistory(script.Session); app.History = history; foreach (var c in _commands) { using (var interaction = await script.Session.BeginInteractionAsync()) { await interaction.RespondAsync(c + Environment.NewLine); EventsPump.DoEvents(100); } } for (int i = _commands.Length - 1; i >= 0; i--) { await history.PlotContentProvider.PreviousPlotAsync(); EventsPump.DoEvents(100); } for (int i = 0; i < _commands.Length; i++) { await history.PlotContentProvider.NextPlotAsync(); EventsPump.DoEvents(500); } EventsPump.DoEvents(1000); } }
public async Task InstallPackageTest() { await Workflow.RSession.EnsureHostStartedAsync(new RHostStartupInfo(), null, 50000); var completionSets = new List <CompletionSet>(); for (int i = 0; i < 2; i++) { try { await Workflow.Packages.UninstallPackageAsync("abc", null); EventsPump.DoEvents(1000); } catch (RException) { } await PackageIndex.BuildIndexAsync(); completionSets.Clear(); RCompletionTestUtilities.GetCompletions(Services, "abc::", 5, completionSets); completionSets.Should().ContainSingle(); // Try again one more time if (completionSets[0].Completions.Count == 0) { break; } } completionSets[0].Completions.Should().BeEmpty(); try { await Workflow.RSession.ExecuteAsync("install.packages('abc')", REvaluationKind.Mutating); EventsPump.DoEvents(1000); } catch (RException) { } await PackageIndex.BuildIndexAsync(); completionSets.Clear(); RCompletionTestUtilities.GetCompletions(Services, "abc::", 5, completionSets); completionSets.Should().ContainSingle(); completionSets[0].Completions.Should().NotBeEmpty(); }