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>()
};
}