private async Task<IEnumerable<string>> FindRefactoringsAsync(string source) { var workspace = await TestHelpers.CreateSimpleWorkspace(source); var controller = new GetCodeActionsService(workspace, new[] { new NRefactoryCodeActionProvider() }); var request = CreateRequest(source); var response = await controller.Handle(request); return response.CodeActions; }
private async Task<IEnumerable<string>> FindRefactoringsAsync(string source) { var loader = new TestOmnisharpAssemblyLoader(_loggerFactory.CreateLogger<CodingActionsFacts>()); var workspace = await TestHelpers.CreateSimpleWorkspace(source); var controller = new GetCodeActionsService(workspace, new[] { new NRefactoryCodeActionProvider(loader) }); var request = CreateRequest(source); var response = await controller.Handle(request); return response.CodeActions; }
private async Task <IEnumerable <string> > FindRefactoringsAsync(string source) { var workspace = await TestHelpers.CreateSimpleWorkspace(source); var controller = new GetCodeActionsService(workspace, new[] { new NRefactoryCodeActionProvider() }); var request = CreateRequest(source); var response = await controller.Handle(request); return(response.CodeActions); }
private async Task <IEnumerable <string> > FindRefactoringsAsync(string source) { var loader = new TestOmnisharpAssemblyLoader(_loggerFactory.CreateLogger <CodingActionsFacts>()); var workspace = await TestHelpers.CreateSimpleWorkspace(source); var controller = new GetCodeActionsService(workspace, new[] { new NRefactoryCodeActionProvider(loader) }); var request = CreateRequest(source); var response = await controller.Handle(request); return(response.CodeActions); }
private async Task <IEnumerable <OmniSharpCodeAction> > FindRefactoringsAsync(string source) { var request = CreateGetCodeActionsRequest(source); var workspace = await GetOmniSharpWorkspace(request); var codeActions = CreateCodeActionProviders(); var controller = new GetCodeActionsService(workspace, codeActions, _fixture.FakeLoggerFactory); var response = await controller.Handle(request); return(response.CodeActions); }
private async Task <IEnumerable <OmniSharpCodeAction> > FindRefactoringsAsync(string source) { var request = CreateGetCodeActionsRequest(source); _host = _host ?? TestHelpers.CreatePluginHost(new[] { typeof(RoslynCodeActionProvider).GetTypeInfo().Assembly, typeof(NRefactoryCodeActionProvider).GetTypeInfo().Assembly, typeof(GetCodeActionsService).GetTypeInfo().Assembly }); _workspace = _workspace ?? await TestHelpers.CreateSimpleWorkspace(_host, request.Buffer, bufferPath); var controller = new GetCodeActionsService(_workspace, new ICodeActionProvider[] { new RoslynCodeActionProvider(), new NRefactoryCodeActionProvider() }, new FakeLoggerFactory()); var response = await controller.Handle(request); return(response.CodeActions); }
public async Task LoadOnDemandProjectsOneByOne() { var configData = new Dictionary <string, string> { [$"MsBuild:{nameof(MSBuildOptions.LoadProjectsOnDemand)}"] = "true" }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("TwoProjectsWithSolution")) using (var host = CreateMSBuildTestHost(testProject.Directory, configurationData: configData.ToConfiguration())) { MSBuildWorkspaceInfo workspaceInfo = await host.RequestMSBuildWorkspaceInfoAsync(); // Expect empty workspace initially since no documents have been requested yet Assert.Null(workspaceInfo.SolutionPath); Assert.NotNull(workspaceInfo.Projects); Assert.Equal(0, workspaceInfo.Projects.Count); // Requesting library document should load only that project GetCodeActionsService codeActionHandler = host.GetRequestHandler <GetCodeActionsService>(OmniSharpEndpoints.V2.GetCodeActions); GetCodeActionsResponse codeActionResponse = await codeActionHandler.Handle( new GetCodeActionsRequest { FileName = Path.Combine(testProject.Directory, "Lib", "Class1.cs") }); workspaceInfo = await host.RequestMSBuildWorkspaceInfoAsync(); Assert.NotNull(codeActionResponse); Assert.Null(workspaceInfo.SolutionPath); Assert.NotNull(workspaceInfo.Projects); Assert.Equal(1, workspaceInfo.Projects.Count); Assert.Equal("Lib.csproj", Path.GetFileName(workspaceInfo.Projects[0].Path)); // Requesting app document should load that project as well QuickFixResponse codeCheckResponse = await host.RequestCodeCheckAsync(Path.Combine(testProject.Directory, "App", "Program.cs")); workspaceInfo = await host.RequestMSBuildWorkspaceInfoAsync(); Assert.NotNull(codeCheckResponse); Assert.Null(workspaceInfo.SolutionPath); Assert.NotNull(workspaceInfo.Projects); Assert.Equal(2, workspaceInfo.Projects.Count); Assert.Equal("App.csproj", Path.GetFileName(workspaceInfo.Projects[0].Path)); Assert.Equal("Lib.csproj", Path.GetFileName(workspaceInfo.Projects[1].Path)); } }
private async Task<IEnumerable<OmniSharpCodeAction>> FindRefactoringsAsync(string source) { var request = CreateGetCodeActionsRequest(source); _host = _host ?? TestHelpers.CreatePluginHost(new[] { typeof(RoslynCodeActionProvider).GetTypeInfo().Assembly, typeof(NRefactoryCodeActionProvider).GetTypeInfo().Assembly, typeof(GetCodeActionsService).GetTypeInfo().Assembly }); _workspace = _workspace ?? await TestHelpers.CreateSimpleWorkspace(_host, request.Buffer, bufferPath); var controller = new GetCodeActionsService(_workspace, new ICodeActionProvider[] { new RoslynCodeActionProvider(), new NRefactoryCodeActionProvider() }, new FakeLoggerFactory()); var response = await controller.Handle(request); return response.CodeActions; }