diff --git a/.editorconfig b/.editorconfig index f76c657..2ac6cdc 100644 --- a/.editorconfig +++ b/.editorconfig @@ -518,6 +518,8 @@ dotnet_diagnostic.S1135.severity = suggestion # https://github.com/atc-net dotnet_diagnostic.IDE0057.severity = none # Substring can be simplified +dotnet_diagnostic.SA1010.severity = none # + dotnet_diagnostic.CA1054.severity = none # URI parameters should not be strings dotnet_diagnostic.CA1848.severity = none # For improved performance, use the LoggerMessage delegates instead of calling 'LoggerExtensions.LogTrace(ILogger, string, params object[])' dotnet_diagnostic.CA1859.severity = none # diff --git a/README.md b/README.md index f52cfbd..c4516de 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ This repository contains a CLI tool, which can be used to maintain `coding-rules - [Options file schema / example](#options-file-schema--example) - [atc-coding-rules-updater.json example 1](#atc-coding-rules-updaterjson-example-1) - [atc-coding-rules-updater.json example 2](#atc-coding-rules-updaterjson-example-2) + - [atc-coding-rules-updater.json example 3](#atc-coding-rules-updaterjson-example-3) - [atc-coding-rules-updater.json default](#atc-coding-rules-updaterjson-default) - [CLI Tool Usage from powershell](#cli-tool-usage-from-powershell) - [Deep dive in what `atc-coding-rules-updater` actual does and doesn't do](#deep-dive-in-what-atc-coding-rules-updater-actual-does-and-doesnt-do) @@ -80,8 +81,8 @@ USAGE: OPTIONS: -h, --help Prints help information - -v, --verbose Use verbose for more debug/trace information - --version Display version + --verbose Use verbose for more debug/trace information + -v, --version Display version COMMANDS: run Update the project folder with ATC coding rules and configurations @@ -101,11 +102,11 @@ EXAMPLES: atc-coding-rules-updater.exe run -p . (equivalent to 'run -p [CurrentFolder]') atc-coding-rules-updater.exe run -p c:\temp\MyProject atc-coding-rules-updater.exe run -p c:\temp\MyProject -t DotNetCore --useTemporarySuppressions --organizationName -MyCompany --repositoryName MyRepo -v +MyCompany --repositoryName MyRepo --verbose OPTIONS: -h, --help Prints help information - -v, --verbose Use verbose for more debug/trace information + --verbose Use verbose for more debug/trace information -p, --projectPath Path to the project directory (default current diectory) -o, --optionsPath [OPTIONSPATH] Path to an optional options json-file @@ -136,11 +137,11 @@ USAGE: EXAMPLES: atc-coding-rules-updater.exe sanity-check . (equivalent to 'sanity-check -p [CurrentFolder]') atc-coding-rules-updater.exe sanity-check -p c:\temp\MyProject - atc-coding-rules-updater.exe sanity-check -p c:\temp\MyProject -t DotNetCore -v + atc-coding-rules-updater.exe sanity-check -p c:\temp\MyProject -t DotNetCore --verbose OPTIONS: -h, --help Prints help information - -v, --verbose Use verbose for more debug/trace information + --verbose Use verbose for more debug/trace information -p, --projectPath Path to the project directory (default current diectory) -o, --optionsPath [OPTIONSPATH] Path to an optional options json-file -t, --projectTarget [PROJECTTARGET] Sets the ProjectTarget. Valid values are: DotNetCore, DotNet5, DotNet6, DotNet7, DotNet8 (default) @@ -172,7 +173,7 @@ COMMANDS: Having a project folder in c:\code\MyProject where the .sln file for C# projects exists in the root, run the following command ```powershell -atc-coding-rules-updater run -p c:\code\MyProject -v +atc-coding-rules-updater run -p c:\code\MyProject --verbose ``` Running the command above produces the following output @@ -201,6 +202,8 @@ Running the command above produces the following output The tool has an optional options parameter, which can be used to control the paths for persisting the .editorconfigs and props files. This can be applied as follows `--optionsPath 'C:\Temp\atc-coding-rules-updater.json'` +By default the atc-coding-rules-updater will detect projects in the solution and try to fetch the matching project specific rules and supply an .editorconfig in those projects. This mapping can however be over-ruled as seen in [atc-coding-rules-updater.json example 3](#atc-coding-rules-updaterjson-example-3) + ### atc-coding-rules-updater.json example 1 ```json @@ -237,6 +240,29 @@ The tool has an optional options parameter, which can be used to control the pat } ``` +### atc-coding-rules-updater.json example 3 + +In this example a project framework mapping has been added. The entry is mapped using the CsProj fileName and the specific ProjectFrameworkType. Currently the supported values for project framework type are [defined here](/src/Atc.CodingRules.Updater/ProjectFrameworkType.cs) + +By specifying this mapping it will over-rule the automatic detection of the project framework type. + +```json +{ + "projectTarget": "DotNet8", + "mappings": { + "sample": { "paths": [ "sample" ] }, + "src": { "paths": [ "src" ] }, + "test": { "paths": [ "test" ] } + }, + "projectFrameworkMappings": [ + { + "name": "HelloWorldWpf", + "type": "Wpf" + } + ] +} +``` + ### atc-coding-rules-updater.json default ```json @@ -257,7 +283,8 @@ The tool has an optional options parameter, which can be used to control the pat "test" ] } - } + }, + "projectFrameworkMappings": [] } ``` diff --git a/atc-coding-rules-updater.ps1 b/atc-coding-rules-updater.ps1 index df1a648..3d555a8 100644 --- a/atc-coding-rules-updater.ps1 +++ b/atc-coding-rules-updater.ps1 @@ -9,4 +9,4 @@ atc-coding-rules-updater ` run ` -p $currentPath ` --optionsPath $currentPath'\atc-coding-rules-updater.json' ` - -v \ No newline at end of file + --verbose \ No newline at end of file diff --git a/src/Atc.CodingRules.AnalyzerProviders/Atc.CodingRules.AnalyzerProviders.csproj b/src/Atc.CodingRules.AnalyzerProviders/Atc.CodingRules.AnalyzerProviders.csproj index 1c6fea8..b242c91 100644 --- a/src/Atc.CodingRules.AnalyzerProviders/Atc.CodingRules.AnalyzerProviders.csproj +++ b/src/Atc.CodingRules.AnalyzerProviders/Atc.CodingRules.AnalyzerProviders.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/src/Atc.CodingRules.AnalyzerProviders/GlobalUsings.cs b/src/Atc.CodingRules.AnalyzerProviders/GlobalUsings.cs index 418b9ad..a6f2c69 100644 --- a/src/Atc.CodingRules.AnalyzerProviders/GlobalUsings.cs +++ b/src/Atc.CodingRules.AnalyzerProviders/GlobalUsings.cs @@ -5,6 +5,7 @@ global using System.Diagnostics.CodeAnalysis; global using System.IO; global using System.Linq; +global using System.Net; global using System.Text.Encodings.Web; global using System.Text.Json; global using System.Text.Json.Serialization; diff --git a/src/Atc.CodingRules.AnalyzerProviders/Providers/AnalyzerProviderBase.cs b/src/Atc.CodingRules.AnalyzerProviders/Providers/AnalyzerProviderBase.cs index e51da5f..68b89e9 100644 --- a/src/Atc.CodingRules.AnalyzerProviders/Providers/AnalyzerProviderBase.cs +++ b/src/Atc.CodingRules.AnalyzerProviders/Providers/AnalyzerProviderBase.cs @@ -1,5 +1,3 @@ -using System.Net; - namespace Atc.CodingRules.AnalyzerProviders.Providers; public abstract class AnalyzerProviderBase : IAnalyzerProvider diff --git a/src/Atc.CodingRules.Updater.CLI/Atc.CodingRules.Updater.CLI.csproj b/src/Atc.CodingRules.Updater.CLI/Atc.CodingRules.Updater.CLI.csproj index c79a1b3..5b837f0 100644 --- a/src/Atc.CodingRules.Updater.CLI/Atc.CodingRules.Updater.CLI.csproj +++ b/src/Atc.CodingRules.Updater.CLI/Atc.CodingRules.Updater.CLI.csproj @@ -13,9 +13,10 @@ - - - + + + + diff --git a/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileCreateCommand.cs b/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileCreateCommand.cs index d2f6697..3350b14 100644 --- a/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileCreateCommand.cs +++ b/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileCreateCommand.cs @@ -4,7 +4,9 @@ public class OptionsFileCreateCommand : AsyncCommand { private readonly ILogger logger; - public OptionsFileCreateCommand(ILogger logger) => this.logger = logger; + public OptionsFileCreateCommand( + ILogger logger) + => this.logger = logger; public override Task ExecuteAsync( CommandContext context, diff --git a/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileValidateCommand.cs b/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileValidateCommand.cs index f8cc5ba..20fccc5 100644 --- a/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileValidateCommand.cs +++ b/src/Atc.CodingRules.Updater.CLI/Commands/OptionsFileValidateCommand.cs @@ -4,7 +4,9 @@ public class OptionsFileValidateCommand : AsyncCommand logger; - public OptionsFileValidateCommand(ILogger logger) => this.logger = logger; + public OptionsFileValidateCommand( + ILogger logger) + => this.logger = logger; public override Task ExecuteAsync( CommandContext context, diff --git a/src/Atc.CodingRules.Updater.CLI/Commands/RunCommand.cs b/src/Atc.CodingRules.Updater.CLI/Commands/RunCommand.cs index 227b584..8c37b13 100644 --- a/src/Atc.CodingRules.Updater.CLI/Commands/RunCommand.cs +++ b/src/Atc.CodingRules.Updater.CLI/Commands/RunCommand.cs @@ -6,7 +6,9 @@ public class RunCommand : AsyncCommand { private readonly ILogger logger; - public RunCommand(ILogger logger) => this.logger = logger; + public RunCommand( + ILogger logger) + => this.logger = logger; public override Task ExecuteAsync( CommandContext context, diff --git a/src/Atc.CodingRules.Updater.CLI/Commands/SanityCheckCommand.cs b/src/Atc.CodingRules.Updater.CLI/Commands/SanityCheckCommand.cs index 1ee0e2c..2125356 100644 --- a/src/Atc.CodingRules.Updater.CLI/Commands/SanityCheckCommand.cs +++ b/src/Atc.CodingRules.Updater.CLI/Commands/SanityCheckCommand.cs @@ -4,7 +4,9 @@ public class SanityCheckCommand : AsyncCommand { private readonly ILogger logger; - public SanityCheckCommand(ILogger logger) => this.logger = logger; + public SanityCheckCommand( + ILogger logger) + => this.logger = logger; public override Task ExecuteAsync( CommandContext context, diff --git a/src/Atc.CodingRules.Updater.CLI/Commands/Settings/RootCommandSettings.cs b/src/Atc.CodingRules.Updater.CLI/Commands/Settings/RootCommandSettings.cs index 37e2d04..d008c6c 100644 --- a/src/Atc.CodingRules.Updater.CLI/Commands/Settings/RootCommandSettings.cs +++ b/src/Atc.CodingRules.Updater.CLI/Commands/Settings/RootCommandSettings.cs @@ -2,7 +2,7 @@ namespace Atc.CodingRules.Updater.CLI.Commands.Settings; public class RootCommandSettings : BaseCommandSettings { - [CommandOption(CommandConstants.ArgumentLongVersion)] + [CommandOption($"{CommandConstants.ArgumentShortVersion}|{CommandConstants.ArgumentLongVersion}")] [Description("Display version")] public bool? Version { get; init; } } \ No newline at end of file diff --git a/src/Atc.CodingRules.Updater.CLI/Extensions/CommandAppExtensions.cs b/src/Atc.CodingRules.Updater.CLI/Extensions/CommandAppExtensions.cs index 23f3f0a..3421d08 100644 --- a/src/Atc.CodingRules.Updater.CLI/Extensions/CommandAppExtensions.cs +++ b/src/Atc.CodingRules.Updater.CLI/Extensions/CommandAppExtensions.cs @@ -33,7 +33,7 @@ private static void ConfigureRunCommand(IConfigurator config) ArgumentCommandConstants.LongUseTemporarySuppressions, ArgumentCommandConstants.LongOrganizationName, "MyCompany", ArgumentCommandConstants.LongRepositoryName, "MyRepo", - CommandConstants.ArgumentShortVerbose + CommandConstants.ArgumentLongVerbose ]); private static void ConfigureSanityCheckCommand(IConfigurator config) @@ -46,7 +46,7 @@ private static void ConfigureSanityCheckCommand(IConfigurator config) NameCommandConstants.SanityCheck, CreateArgumentProjectPathWithTestFolder(), CreateArgumentProjectTarget(SupportedProjectTargetType.DotNetCore), - CommandConstants.ArgumentShortVerbose + CommandConstants.ArgumentLongVerbose ]); private static Action> ConfigureOptionsFileCommands() @@ -84,7 +84,7 @@ private static Action> ConfigureAnalyzerProviders CreateArgumentCommandsAnalyzerProvidersWithCollect(), CreateArgumentProjectPathWithTestFolder(), CreateArgumentFetchMode(ProviderCollectingMode.ReCollect), - CommandConstants.ArgumentShortVerbose + CommandConstants.ArgumentLongVerbose ]); node diff --git a/src/Atc.CodingRules.Updater.CLI/GlobalUsings.cs b/src/Atc.CodingRules.Updater.CLI/GlobalUsings.cs index 0f844a1..9190f5e 100644 --- a/src/Atc.CodingRules.Updater.CLI/GlobalUsings.cs +++ b/src/Atc.CodingRules.Updater.CLI/GlobalUsings.cs @@ -19,10 +19,12 @@ global using Atc.Console.Spectre.Factories; global using Atc.Console.Spectre.Helpers; global using Atc.Console.Spectre.Logging; +global using Atc.DotNet; global using Atc.Helpers; global using Microsoft.Extensions.Configuration; global using Microsoft.Extensions.Logging; - +global using OfficeOpenXml; +global using OfficeOpenXml.Style; global using Spectre.Console; global using Spectre.Console.Cli; \ No newline at end of file diff --git a/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsFile.cs b/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsFile.cs index a285964..fa3c7b4 100644 --- a/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsFile.cs +++ b/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsFile.cs @@ -18,9 +18,9 @@ public class OptionsFile public OptionsMappings Mappings { get; set; } = new(); - public bool HasMappingsPaths() - => Mappings.HasMappingsPaths(); + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "OK.")] + public IList ProjectFrameworkMappings { get; set; } = []; public override string ToString() - => $"{nameof(ProjectTarget)}: {ProjectTarget}, {nameof(UseTemporarySuppressions)}: {UseTemporarySuppressions}, {nameof(TemporarySuppressionsPath)}: {TemporarySuppressionAsExcel}, {nameof(TemporarySuppressionAsExcel)}: {TemporarySuppressionsPath}, {nameof(Mappings)}: ({Mappings})"; + => $"{nameof(ProjectTarget)}: {ProjectTarget}, {nameof(UseTemporarySuppressions)}: {UseTemporarySuppressions}, {nameof(TemporarySuppressionsPath)}: {TemporarySuppressionAsExcel}, {nameof(TemporarySuppressionAsExcel)}: {TemporarySuppressionsPath}, {nameof(Mappings)}: ({Mappings}), {nameof(ProjectFrameworkMappings)}.Count: {ProjectFrameworkMappings.Count}"; } \ No newline at end of file diff --git a/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsProjectFrameworkMapping.cs b/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsProjectFrameworkMapping.cs new file mode 100644 index 0000000..0b80aed --- /dev/null +++ b/src/Atc.CodingRules.Updater.CLI/Models/Options/OptionsProjectFrameworkMapping.cs @@ -0,0 +1,8 @@ +namespace Atc.CodingRules.Updater.CLI.Models.Options; + +public class OptionsProjectFrameworkMapping +{ + public string Name { get; set; } = string.Empty; + + public ProjectFrameworkType Type { get; set; } +} \ No newline at end of file diff --git a/src/Atc.CodingRules.Updater.CLI/Program.cs b/src/Atc.CodingRules.Updater.CLI/Program.cs index 4933e15..b6cab2e 100644 --- a/src/Atc.CodingRules.Updater.CLI/Program.cs +++ b/src/Atc.CodingRules.Updater.CLI/Program.cs @@ -66,20 +66,20 @@ private static string[] SetProjectPathFromDotArgumentIfNeeded(string[] args) newArgs.Insert(0, NameCommandConstants.Run); } - if (!newArgs.Contains(CommandConstants.ArgumentShortVerbose, StringComparer.OrdinalIgnoreCase) || - !newArgs.Contains(CommandConstants.ArgumentLongVerbose, StringComparer.OrdinalIgnoreCase)) + if (!newArgs.Contains(CommandConstants.ArgumentLongVerbose, StringComparer.OrdinalIgnoreCase)) { - newArgs.Add(CommandConstants.ArgumentShortVerbose); + newArgs.Add(CommandConstants.ArgumentLongVerbose); } - return newArgs.ToArray(); + return [.. newArgs]; } - private static string[] SetHelpArgumentIfNeeded(string[] args) + private static string[] SetHelpArgumentIfNeeded( + string[] args) { if (args.Length == 0) { - return new[] { CommandConstants.ArgumentShortHelp }; + return [CommandConstants.ArgumentShortHelp]; } if (args.Contains(NameCommandConstants.AnalyzerProviders, StringComparer.OrdinalIgnoreCase) && @@ -93,25 +93,25 @@ private static string[] SetHelpArgumentIfNeeded(string[] args) { if (args.Contains(NameCommandConstants.SanityCheck, StringComparer.OrdinalIgnoreCase)) { - return new[] { NameCommandConstants.SanityCheck, CommandConstants.ArgumentShortHelp }; + return [NameCommandConstants.SanityCheck, CommandConstants.ArgumentShortHelp]; } if (args.Contains(CommandConstants.NameOptionsFile, StringComparer.OrdinalIgnoreCase) && (args.Contains(CommandConstants.NameOptionsFileCreate, StringComparer.OrdinalIgnoreCase) || args.Contains(CommandConstants.NameOptionsFileValidate, StringComparer.OrdinalIgnoreCase))) { - return new[] { CommandConstants.NameOptionsFile, CommandConstants.ArgumentShortHelp }; + return [CommandConstants.NameOptionsFile, CommandConstants.ArgumentShortHelp]; } if (args.Contains(NameCommandConstants.AnalyzerProviders, StringComparer.OrdinalIgnoreCase) && args.Contains(NameCommandConstants.AnalyzerProvidersCollect, StringComparer.OrdinalIgnoreCase)) { - return new[] { NameCommandConstants.AnalyzerProviders, CommandConstants.ArgumentShortHelp }; + return [NameCommandConstants.AnalyzerProviders, CommandConstants.ArgumentShortHelp]; } if (args.Contains(NameCommandConstants.Run, StringComparer.OrdinalIgnoreCase)) { - return new[] { NameCommandConstants.Run, CommandConstants.ArgumentShortHelp }; + return [NameCommandConstants.Run, CommandConstants.ArgumentShortHelp]; } } diff --git a/src/Atc.CodingRules.Updater.CLI/ProjectHelper.cs b/src/Atc.CodingRules.Updater.CLI/ProjectHelper.cs index a1c0325..2abbae8 100644 --- a/src/Atc.CodingRules.Updater.CLI/ProjectHelper.cs +++ b/src/Atc.CodingRules.Updater.CLI/ProjectHelper.cs @@ -1,7 +1,4 @@ -using Atc.DotNet; -using OfficeOpenXml; -using OfficeOpenXml.Style; - +// ReSharper disable SwitchStatementMissingSomeEnumCasesNoDefault // ReSharper disable InvertIf // ReSharper disable SuggestBaseTypeForParameter namespace Atc.CodingRules.Updater.CLI; @@ -89,6 +86,8 @@ private static void HandleEditorConfigFiles( logger.LogInformation($"{AppEmojisConstants.AreaEditorConfig} Working on EditorConfig files"); var rawCodingRulesDistributionProjectTargetBaseUrl = $"{RawCodingRulesDistributionBaseUrl}/{options.ProjectTarget.ToStringLowerCase()}"; + const string projectFrameworkCodingRulesBaseUrl = $"{RawCodingRulesDistributionBaseUrl}/project-frameworks"; + EditorConfigHelper.HandleFile(logger, "root", rawCodingRulesDistributionProjectTargetBaseUrl, projectPath, string.Empty); foreach (var item in options.Mappings.Sample.Paths) @@ -108,6 +107,66 @@ private static void HandleEditorConfigFiles( var path = new DirectoryInfo(item); EditorConfigHelper.HandleFile(logger, "test", rawCodingRulesDistributionProjectTargetBaseUrl, path, "test"); } + + // Handle Project specific Frameworks + var projectsInProjectPath = DotnetCsProjFileHelper.FindAllInPathAndPredictProjectTypes(projectPath); + + foreach (var (csProjFile, projectType) in projectsInProjectPath) + { + var projectFrameworkType = DetermineProjectFrameworkType(options, csProjFile, projectType); + if (projectFrameworkType == ProjectFrameworkType.None) + { + continue; + } + + EditorConfigHelper.HandleFile(logger, "ProjectFramework", projectFrameworkCodingRulesBaseUrl, csProjFile.Directory!, projectFrameworkType.ToStringLowerCase()); + } + } + + private static ProjectFrameworkType DetermineProjectFrameworkType( + OptionsFile options, + FileInfo csProjFile, + DotnetProjectType projectType) + { + var projectFrameworkType = ProjectFrameworkType.None; + + var optionsProjectFrameworkMapping = options.ProjectFrameworkMappings.FirstOrDefault( + x => x.Name.Equals( + Path.GetFileNameWithoutExtension(csProjFile.Name), + StringComparison.OrdinalIgnoreCase)); + + if (optionsProjectFrameworkMapping is not null) + { + projectFrameworkType = optionsProjectFrameworkMapping.Type; + } + else + { + switch (projectType) + { + case DotnetProjectType.AzureFunctionApp: + projectFrameworkType = ProjectFrameworkType.AzureFunctions; + break; + case DotnetProjectType.BlazorServerApp: + case DotnetProjectType.BlazorWAsmApp: + projectFrameworkType = ProjectFrameworkType.Blazor; + break; + case DotnetProjectType.MauiApp: + projectFrameworkType = ProjectFrameworkType.Maui; + break; + case DotnetProjectType.WinFormApp: + projectFrameworkType = ProjectFrameworkType.WinForms; + break; + case DotnetProjectType.WpfApp: + case DotnetProjectType.WpfLibrary: + projectFrameworkType = ProjectFrameworkType.Wpf; + break; + case DotnetProjectType.WebApi: + projectFrameworkType = ProjectFrameworkType.WebApi; + break; + } + } + + return projectFrameworkType; } private static void HandleDirectoryBuildPropsFiles( diff --git a/src/Atc.CodingRules.Updater/Atc.CodingRules.Updater.csproj b/src/Atc.CodingRules.Updater/Atc.CodingRules.Updater.csproj index 9b96932..72e6d71 100644 --- a/src/Atc.CodingRules.Updater/Atc.CodingRules.Updater.csproj +++ b/src/Atc.CodingRules.Updater/Atc.CodingRules.Updater.csproj @@ -5,9 +5,9 @@ - - - + + + diff --git a/src/Atc.CodingRules.Updater/ProjectFrameworkType.cs b/src/Atc.CodingRules.Updater/ProjectFrameworkType.cs new file mode 100644 index 0000000..ed8d2a7 --- /dev/null +++ b/src/Atc.CodingRules.Updater/ProjectFrameworkType.cs @@ -0,0 +1,12 @@ +namespace Atc.CodingRules.Updater; + +public enum ProjectFrameworkType +{ + None, + AzureFunctions, + Blazor, + Maui, + WebApi, + WinForms, + Wpf, +} \ No newline at end of file diff --git a/src/Atc.CodingRules.Updater/ProjectSanityCheckHelper.cs b/src/Atc.CodingRules.Updater/ProjectSanityCheckHelper.cs index 4388284..35f222c 100644 --- a/src/Atc.CodingRules.Updater/ProjectSanityCheckHelper.cs +++ b/src/Atc.CodingRules.Updater/ProjectSanityCheckHelper.cs @@ -14,12 +14,12 @@ public static void CheckFiles( switch (projectTarget) { case SupportedProjectTargetType.DotNet5: - HasEnableNetAnalyzers(throwIf, logger, projectPath, projectTarget); // TODO: XXX + HasEnableNetAnalyzers(throwIf, logger, projectPath, projectTarget); break; case SupportedProjectTargetType.DotNet6: case SupportedProjectTargetType.DotNet7: case SupportedProjectTargetType.DotNet8: - HasTargetFrameworkAndImplicitUsings(throwIf, logger, projectPath, "netcoreapp3.1"); // TODO: XXX + HasTargetFrameworkAndImplicitUsings(throwIf, logger, projectPath, "netcoreapp3.1"); break; } } diff --git a/src/Atc.CodingRules/Atc.CodingRules.csproj b/src/Atc.CodingRules/Atc.CodingRules.csproj index a625ea2..860d081 100644 --- a/src/Atc.CodingRules/Atc.CodingRules.csproj +++ b/src/Atc.CodingRules/Atc.CodingRules.csproj @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/test/Atc.CodingRules.AnalyzerProviders.Tests/Atc.CodingRules.AnalyzerProviders.Tests.csproj b/test/Atc.CodingRules.AnalyzerProviders.Tests/Atc.CodingRules.AnalyzerProviders.Tests.csproj index 3dbc9ff..4c843f4 100644 --- a/test/Atc.CodingRules.AnalyzerProviders.Tests/Atc.CodingRules.AnalyzerProviders.Tests.csproj +++ b/test/Atc.CodingRules.AnalyzerProviders.Tests/Atc.CodingRules.AnalyzerProviders.Tests.csproj @@ -6,7 +6,7 @@ - +