protected virtual Project CreateProject(Solution solution, DocumentCreationArgs args, CompilationOptions compilationOptions, Project?previousProject = null) { var name = args.Name ?? "New"; var id = ProjectId.CreateNewId(name); var parseOptions = ParseOptions.WithKind(args.SourceCodeKind); var isScript = args.SourceCodeKind == SourceCodeKind.Script; if (isScript) { compilationOptions = compilationOptions.WithScriptClassName(name); } solution = solution.AddProject(ProjectInfo.Create( id, VersionStamp.Create(), name, name, LanguageNames.CSharp, isSubmission: isScript, parseOptions: parseOptions, compilationOptions: compilationOptions, metadataReferences: previousProject != null ? ImmutableArray <MetadataReference> .Empty : DefaultReferences, projectReferences: previousProject != null ? new[] { new ProjectReference(previousProject.Id) } : null)); var project = solution.GetProject(id) !; if (!isScript && GetUsings(project) is { Length : > 0 } usings) { project = project.AddDocument("RoslynPadGeneratedUsings", usings).Project; } return(project);
protected async Task TestMissingAsync( string initialMarkup, ParseOptions parseOptions, IDictionary <OptionKey, object> options = null, string fixAllActionEquivalenceKey = null, object fixProviderData = null, bool withScriptOption = false) { await TestMissingAsync(initialMarkup, parseOptions, compilationOptions : null, options : options, fixAllActionEquivalenceKey : fixAllActionEquivalenceKey, fixProviderData : fixProviderData); if (withScriptOption) { await TestMissingAsync(initialMarkup, parseOptions.WithKind(SourceCodeKind.Script), compilationOptions : null, options : options, fixAllActionEquivalenceKey : fixAllActionEquivalenceKey, fixProviderData : fixProviderData); } }
internal async Task TestAsync( string initialMarkup, string expectedMarkup, ParseOptions parseOptions, int index = 0, bool compareTokens = true, IDictionary <OptionKey, object> options = null, string fixAllActionEquivalenceKey = null, object fixProviderData = null, bool withScriptOption = false, CodeActionPriority?priority = null) { await TestAsync(initialMarkup, expectedMarkup, parseOptions, null, index, compareTokens, options, fixAllActionEquivalenceKey, fixProviderData, priority); if (withScriptOption) { await TestAsync(initialMarkup, expectedMarkup, parseOptions.WithKind(SourceCodeKind.Script), null, index, compareTokens, options, fixAllActionEquivalenceKey, fixProviderData, priority); } }