Beispiel #1
0
        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);
            }
        }