public void Apply(CompilationOptions options, ProjectPropertyStorage storage)
        {
            var csharpOptions = (CSharpCompilationOptions)options;

            storage.SetProperty("AllowUnsafeBlocks", nameof(ProjectConfigurationProperties3.AllowUnsafeBlocks),
                                csharpOptions.AllowUnsafe);
        }
        public void Apply(ParseOptions options, ProjectPropertyStorage storage)
        {
            var csharpOptions = (CSharpParseOptions)options;

            storage.SetProperty("LangVersion", nameof(CSharpProjectConfigurationProperties3.LanguageVersion),
                                LanguageVersionFacts.ToDisplayString(csharpOptions.SpecifiedLanguageVersion));
        }
Exemple #3
0
        public void Apply(CompilationOptions oldOptions, CompilationOptions newOptions, ProjectPropertyStorage storage)
        {
            var oldCSharpOptions = (CSharpCompilationOptions)oldOptions;
            var newCSharpOptions = (CSharpCompilationOptions)newOptions;

            if (newCSharpOptions.AllowUnsafe != oldCSharpOptions.AllowUnsafe)
            {
                storage.SetProperty("AllowUnsafeBlocks", nameof(ProjectConfigurationProperties3.AllowUnsafeBlocks),
                                    newCSharpOptions.AllowUnsafe);
            }

            if (newCSharpOptions.NullableContextOptions != oldCSharpOptions.NullableContextOptions)
            {
                var projectSetting = newCSharpOptions.NullableContextOptions switch
                {
                    NullableContextOptions.Enable => "enable",
                    NullableContextOptions.Warnings => "warnings",
                    NullableContextOptions.Annotations => "annotations",
                    _ => "disable",
                };
                storage.SetProperty("Nullable", "Nullable", projectSetting);
            }
        }