EnvDTE.Client/Impl/ProjectModelImpl/PropertyImpl/PropertyInfo/VisualStudioProperties.Configuration.cs (80 lines of code) (raw):

using System; using System.Collections.Generic; using JetBrains.Rider.Model; namespace JetBrains.EnvDTE.Client.Impl.ProjectModelImpl.PropertyImpl.PropertyInfo; internal static partial class VisualStudioProperties { // There are two FSharp specific properties mentioned in the files, but they are not present in the actual implementation // .NET Framework projects have two additional properties: 'PreferNativeArm64' and 'AuthenticationMode' internal static readonly IReadOnlyDictionary<string, StringPropertyInfo> CSharpConfigurationPropertiesMap = new Dictionary<string, StringPropertyInfo> { ["ErrorReport"] = new ("ErrorReport", "ErrorReport", false), }; // '__id', 'ExtenderCATID' and 'ExtenderNames' are not included internal static readonly IReadOnlyDictionary<string, StringPropertyInfo> ConfigurationPropertiesMap = new Dictionary<string, StringPropertyInfo> { ["LanguageVersion"] = new ("LanguageVersion", "LangVersion", false), ["CodeAnalysisRuleSet"] = new("CodeAnalysisRuleSet", "CodeAnalysisRuleSet", false), ["OutputPath"] = new("OutputPath", "OutputPath", false), ["PlatformTarget"] = new ("PlatformTarget", "PlatformTarget", false), ["IntermediatePath"] = new("IntermediatePath", "IntermediateOutputPath", false), ["RunCodeAnalysis"] = new BoolPropertyInfo("RunCodeAnalysis", "RunCodeAnalysis", false), ["DebugSymbols"] = new BoolPropertyInfo("DebugSymbols", "DebugSymbols", false), ["DefineDebug"] = new BoolPropertyInfo("DefineDebug", "DefineDebug", false), ["DefineTrace"] = new BoolPropertyInfo("DefineTrace", "DefineTrace", false), ["DefineConstants"] = new("DefineConstants", "DefineConstants", false), ["RemoveIntegerChecks"] = new BoolPropertyInfo("RemoveIntegerChecks", "RemoveIntegerChecks", false), ["BaseAddress"] = new("BaseAddress", "BaseAddress", false), ["AllowUnsafeBlocks"] = new BoolPropertyInfo("AllowUnsafeBlocks", "AllowUnsafeBlocks", false), ["CheckForOverflowUnderflow"] = new BoolPropertyInfo("CheckForOverflowUnderflow", "CheckForOverflowUnderflow", false), ["DocumentationFile"] = new("DocumentationFile", "DocumentationFile", false), ["Optimize"] = new BoolPropertyInfo("Optimize", "Optimize", false), ["IncrementalBuild"] = new BoolPropertyInfo("IncrementalBuild", "IncrementalBuild", false), ["StartProgram"] = new ("StartProgram", "StartProgram", false), ["StartWorkingDirectory"] = new ("StartWorkingDirectory", "StartWorkingDirectory", false), ["StartURL"] = new ("StartURL", "StartURL", false), ["StartPage"] = new ("StartPage", "StartPage", false), ["StartArguments"] = new ("StartArguments", "StartArguments", false), ["StartWithIE"] = new BoolPropertyInfo("StartWithIE", "StartWithIE", false), ["EnableASPDebugging"] = new BoolPropertyInfo("EnableASPDebugging", "EnableASPDebugging", false), ["EnableASPXDebugging"] = new BoolPropertyInfo("EnableASPXDebugging", "EnableASPXDebugging", false), ["EnableUnmanagedDebugging"] = new BoolPropertyInfo("EnableUnmanagedDebugging", "EnableUnmanagedDebugging", false), ["StartAction"] = new EnumPropertyInfo("StartAction", "StartAction", false, new (["Project", "Program", "URL", "None"], StringComparer.OrdinalIgnoreCase)), ["WarningLevel"] = new UIntPropertyInfo("WarningLevel", "WarningLevel", false), ["TreatWarningsAsErrors"] = new BoolPropertyInfo("TreatWarningsAsErrors", "TreatWarningsAsErrors", false), ["EnableSQLServerDebugging"] = new BoolPropertyInfo("EnableSQLServerDebugging", "EnableSQLServerDebugging", false), ["FileAlignment"] = new UIntPropertyInfo("FileAlignment", "FileAlignment", false), ["RegisterForComInterop"] = new BoolPropertyInfo("RegisterForComInterop", "RegisterForComInterop", false), ["ConfigurationOverrideFile"] = new ("ConfigurationOverrideFile", "ConfigurationOverrideFile", false), ["RemoteDebugEnabled"] = new BoolPropertyInfo("RemoteDebugEnabled", "RemoteDebugEnabled", false), ["RemoteDebugMachine"] = new ("RemoteDebugMachine", "RemoteDebugMachine", false), ["NoWarn"] = new("NoWarn", "NoWarn", false), ["NoStdLib"] = new BoolPropertyInfo("NoStdLib", "NoStdLib", false), ["DebugInfo"] = new ("DebugInfo", "DebugType", false), ["TreatSpecificWarningsAsErrors"] = new("TreatSpecificWarningsAsErrors", "WarningsAsErrors", false), ["CodeAnalysisLogFile"] = new("CodeAnalysisLogFile", "CodeAnalysisLogFile", false), ["CodeAnalysisRuleAssemblies"] = new("CodeAnalysisRuleAssemblies", "CodeAnalysisRuleAssemblies", false), ["CodeAnalysisInputAssembly"] = new("CodeAnalysisInputAssembly", "CodeAnalysisInputAssembly", false), ["CodeAnalysisRules"] = new("CodeAnalysisRules", "CodeAnalysisRules", false), ["CodeAnalysisSpellCheckLanguages"] = new("CodeAnalysisSpellCheckLanguages", "CodeAnalysisSpellCheckLanguages", false), ["CodeAnalysisUseTypeNameInSuppression"] = new BoolPropertyInfo("CodeAnalysisUseTypeNameInSuppression", "CodeAnalysisUseTypeNameInSuppression", false), ["CodeAnalysisModuleSuppressionsFile"] = new("CodeAnalysisModuleSuppressionsFile", "CodeAnalysisModuleSuppressionsFile", false), ["UseVSHostingProcess"] = new BoolPropertyInfo("UseVSHostingProcess", "UseVSHostingProcess", false), ["GenerateSerializationAssemblies"] = new EnumPropertyInfo("GenerateSerializationAssemblies", "GenerateSerializationAssemblies", false, new (["Auto", "On", "Off"], StringComparer.OrdinalIgnoreCase)), ["CodeAnalysisIgnoreGeneratedCode"] = new BoolPropertyInfo("CodeAnalysisIgnoreGeneratedCode", "CodeAnalysisIgnoreGeneratedCode", false), ["CodeAnalysisOverrideRuleVisibilities"] = new BoolPropertyInfo("CodeAnalysisOverrideRuleVisibilities", "CodeAnalysisOverrideRuleVisibilities", false), ["CodeAnalysisDictionaries"] = new("CodeAnalysisDictionaries", "CodeAnalysisDictionaries", false), ["CodeAnalysisCulture"] = new("CodeAnalysisCulture", "CodeAnalysisCulture", false), ["CodeAnalysisRuleSetDirectories"] = new("CodeAnalysisRuleSetDirectories", "CodeAnalysisRuleSetDirectories", false), ["CodeAnalysisIgnoreBuiltInRuleSets"] = new BoolPropertyInfo("CodeAnalysisIgnoreBuiltInRuleSets", "CodeAnalysisIgnoreBuiltInRuleSets", false), ["CodeAnalysisRuleDirectories"] = new("CodeAnalysisRuleDirectories", "CodeAnalysisRuleDirectories", false), ["CodeAnalysisIgnoreBuiltInRules"] = new BoolPropertyInfo("CodeAnalysisIgnoreBuiltInRules", "CodeAnalysisIgnoreBuiltInRules", false), ["CodeAnalysisFailOnMissingRules"] = new BoolPropertyInfo("CodeAnalysisFailOnMissingRules", "CodeAnalysisFailOnMissingRules", false), ["Prefer32Bit"] = new BoolPropertyInfo("Prefer32Bit", "Prefer32Bit", false), }; internal static IReadOnlyDictionary<string, StringPropertyInfo> GetLanguageSpecificConfigurationMap(LanguageModel languageModel) => languageModel switch { LanguageModel.CSharp => CSharpConfigurationPropertiesMap, _ => new Dictionary<string, StringPropertyInfo>() }; }