Spaces:
Running
Running
<Project> | |
<Target Name="AddGlobalAnalyzerConfigForPackage_MicrosoftCodeAnalysisVisualBasicCodeStyle" BeforeTargets="GenerateMSBuildEditorConfigFileCore;CoreCompile" Condition="'$(SkipGlobalAnalyzerConfigForPackage)' != 'true'"> | |
<!-- PropertyGroup to compute global analyzer config file to be used --> | |
<PropertyGroup> | |
<!-- Default 'AnalysisLevelStyle' to the core 'AnalysisLevel' --> | |
<AnalysisLevelStyle Condition="'$(AnalysisLevelStyle)' == ''">$(AnalysisLevel)</AnalysisLevelStyle> | |
<!-- AnalysisLevelStyle can also contain compound values with a prefix and suffix separated by a '-' character. | |
The prefix indicates the core AnalysisLevel for 'Style' rules and the suffix indicates the bucket of | |
rules to enable for 'Style' rules by default. For example, some valid compound values for AnalysisLevelStyle are: | |
1. '5-all' - Indicates core AnalysisLevelStyle = '5' with 'all' the 'Style' rules enabled by default. | |
2. 'latest-none' - Indicates core AnalysisLevelStyle = 'latest' with 'none' of the 'Style' rules enabled by default. | |
AnalysisLevelPrefixStyle is used to set the EffectiveAnalysisLevelStyle below. | |
AnalysisLevelSuffixStyle is used to map to the correct global config. | |
--> | |
<AnalysisLevelPrefixStyle Condition="$(AnalysisLevelStyle.Contains('-'))">$([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelStyle), '-(.)*', ''))</AnalysisLevelPrefixStyle> | |
<AnalysisLevelSuffixStyle Condition="'$(AnalysisLevelPrefixStyle)' != ''">$([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelStyle), '$(AnalysisLevelPrefixStyle)-', ''))</AnalysisLevelSuffixStyle> | |
<!-- Default 'AnalysisLevelSuffixStyle' to the core 'AnalysisLevelSuffix' --> | |
<AnalysisLevelSuffixStyle Condition="'$(AnalysisLevelSuffixStyle)' == ''">$(AnalysisLevelSuffix)</AnalysisLevelSuffixStyle> | |
<!-- Default 'AnalysisModeStyle' to the core 'AnalysisMode' --> | |
<AnalysisModeStyle Condition="'$(AnalysisModeStyle)' == ''">$(AnalysisMode)</AnalysisModeStyle> | |
<!-- EffectiveAnalysisLevelStyle is used to differentiate from user specified strings (such as 'none') | |
and an implied numerical option (such as '4') --> | |
<EffectiveAnalysisLevelStyle Condition="'$(AnalysisLevelStyle)' == 'none' or '$(AnalysisLevelPrefixStyle)' == 'none'">$(_NoneAnalysisLevel)</EffectiveAnalysisLevelStyle> | |
<EffectiveAnalysisLevelStyle Condition="'$(AnalysisLevelStyle)' == 'latest' or '$(AnalysisLevelPrefixStyle)' == 'latest'">$(_LatestAnalysisLevel)</EffectiveAnalysisLevelStyle> | |
<EffectiveAnalysisLevelStyle Condition="'$(AnalysisLevelStyle)' == 'preview' or '$(AnalysisLevelPrefixStyle)' == 'preview'">$(_PreviewAnalysisLevel)</EffectiveAnalysisLevelStyle> | |
<!-- Set EffectiveAnalysisLevelStyle to the value of AnalysisLevelStyle if it is a version number --> | |
<EffectiveAnalysisLevelStyle Condition="'$(EffectiveAnalysisLevelStyle)' == '' And | |
'$(AnalysisLevelPrefixStyle)' != ''">$(AnalysisLevelPrefixStyle)</EffectiveAnalysisLevelStyle> | |
<EffectiveAnalysisLevelStyle Condition="'$(EffectiveAnalysisLevelStyle)' == '' And | |
'$(AnalysisLevelStyle)' != ''">$(AnalysisLevelStyle)</EffectiveAnalysisLevelStyle> | |
<!-- Set the default analysis mode, if not set by the user --> | |
<_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle>$(AnalysisLevelSuffixStyle)</_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == ''">$(AnalysisModeStyle)</_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == 'AllEnabledByDefault'">All</_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == 'AllDisabledByDefault'">None</_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == ''">Default</_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle>AnalysisLevelStyle_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle).globalconfig</_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle.ToLowerInvariant())</_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == ''">$(MSBuildThisFileDirectory)config</_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
<_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle)</_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisVisualBasicCodeStyle> | |
</PropertyGroup> | |
<!-- From .NET 9, the global config is systematically added if the file exists. Please check https://github.com/dotnet/roslyn/pull/71173 for more info. --> | |
<ItemGroup Condition="Exists('$(_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisVisualBasicCodeStyle)') and | |
('$(AnalysisLevelStyle)' != '$(AnalysisLevel)' or '$(AnalysisModeStyle)' != '$(AnalysisMode)' or ('$(EffectiveAnalysisLevelStyle)' != '' and $([MSBuild]::VersionGreaterThanOrEquals('$(EffectiveAnalysisLevelStyle)', '9.0'))))"> | |
<EditorConfigFiles Include="$(_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisVisualBasicCodeStyle)" /> | |
</ItemGroup> | |
<!-- Pass the MSBuild property value for 'EffectiveAnalysisLevelStyle' to the analyzers via analyzer config options. --> | |
<ItemGroup> | |
<CompilerVisibleProperty Include="EffectiveAnalysisLevelStyle" /> | |
</ItemGroup> | |
</Target> | |
</Project> |