diff --git a/.gitattributes b/.gitattributes index f86bd2a20..7b2a9d679 100644 --- a/.gitattributes +++ b/.gitattributes @@ -111,5 +111,8 @@ *.verified.xml text eol=lf working-tree-encoding=UTF-8 *.verified.json text eol=lf working-tree-encoding=UTF-8 +# See https://github.com/MattKotsenas/SquiggleCop?tab=readme-ov-file#encodings--line-endings +SquiggleCop.Baseline.yaml text eol=lf + # Fix syntax highlighting on GitHub to allow comments .vscode/*.json linguist-language=JSON-with-Comments \ No newline at end of file diff --git a/Moq.Analyzers.sln b/Moq.Analyzers.sln index d8c8a2ed4..e317f228e 100644 --- a/Moq.Analyzers.sln +++ b/Moq.Analyzers.sln @@ -3,18 +3,20 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.10.34928.147 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Analyzers", "src\Moq.Analyzers\Moq.Analyzers.csproj", "{41ECC571-F586-460A-9BED-23528C8210C4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Analyzers", "src\Analyzers\Moq.Analyzers.csproj", "{41ECC571-F586-460A-9BED-23528C8210C4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Analyzers.Test", "tests\Moq.Analyzers.Test\Moq.Analyzers.Test.csproj", "{D2348836-7129-4BE5-8AE6-D05FC8C28FC1}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Analyzers.Benchmarks", "tests\Moq.Analyzers.Benchmarks\Moq.Analyzers.Benchmarks.csproj", "{11B3412F-456C-452E-94D2-B42D5C52F61C}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.CodeFixes", "src\Moq.CodeFixes\Moq.CodeFixes.csproj", "{8E99C15C-E80A-49E5-988C-1B5071CE775F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.CodeFixes", "src\CodeFixes\Moq.CodeFixes.csproj", "{8E99C15C-E80A-49E5-988C-1B5071CE775F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{013D4F80-9978-45DA-9BB8-6638239355E4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Moq.Analyzers.Test.Analyzers", "tests\Moq.Analyzers.Test.Analyzers\Moq.Analyzers.Test.Analyzers.csproj", "{C68B6F38-838B-4BD9-963D-95779B6F418B}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "src\Common\Common.csproj", "{622DB72F-5609-4C08-838D-6937A680094A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -41,6 +43,10 @@ Global {C68B6F38-838B-4BD9-963D-95779B6F418B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C68B6F38-838B-4BD9-963D-95779B6F418B}.Release|Any CPU.ActiveCfg = Release|Any CPU {C68B6F38-838B-4BD9-963D-95779B6F418B}.Release|Any CPU.Build.0 = Release|Any CPU + {622DB72F-5609-4C08-838D-6937A680094A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {622DB72F-5609-4C08-838D-6937A680094A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {622DB72F-5609-4C08-838D-6937A680094A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {622DB72F-5609-4C08-838D-6937A680094A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -53,4 +59,9 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8C917BC1-C0DE-4A46-BEE8-32FD66B447B1} EndGlobalSection + GlobalSection(SharedMSBuildProjectFiles) = preSolution + src\Common\Common.projitems*{41ecc571-f586-460a-9bed-23528c8210c4}*SharedItemsImports = 5 + src\Common\Common.projitems*{622db72f-5609-4c08-838d-6937a680094a}*SharedItemsImports = 5 + src\Common\Common.projitems*{8e99c15c-e80a-49e5-988c-1b5071ce775f}*SharedItemsImports = 5 + EndGlobalSection EndGlobal diff --git a/build/targets/codeanalysis/CodeAnalysis.targets b/build/targets/codeanalysis/CodeAnalysis.targets index fecce5acc..9782fc6d6 100644 --- a/build/targets/codeanalysis/CodeAnalysis.targets +++ b/build/targets/codeanalysis/CodeAnalysis.targets @@ -3,6 +3,6 @@ $([MSBuild]::ValueOrDefault('$(ContinuousIntegrationBuild)', 'false')) $(PedanticMode) $(PedanticMode) - $(PedanticMode) + $(PedanticMode) diff --git a/src/Moq.Analyzers/AnalyzerReleases.Shipped.md b/src/Analyzers/AnalyzerReleases.Shipped.md similarity index 100% rename from src/Moq.Analyzers/AnalyzerReleases.Shipped.md rename to src/Analyzers/AnalyzerReleases.Shipped.md diff --git a/src/Moq.Analyzers/AnalyzerReleases.Unshipped.md b/src/Analyzers/AnalyzerReleases.Unshipped.md similarity index 100% rename from src/Moq.Analyzers/AnalyzerReleases.Unshipped.md rename to src/Analyzers/AnalyzerReleases.Unshipped.md diff --git a/src/Moq.Analyzers/AsShouldBeUsedOnlyForInterfaceAnalyzer.cs b/src/Analyzers/AsShouldBeUsedOnlyForInterfaceAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/AsShouldBeUsedOnlyForInterfaceAnalyzer.cs rename to src/Analyzers/AsShouldBeUsedOnlyForInterfaceAnalyzer.cs diff --git a/src/Moq.Analyzers/CallbackSignatureShouldMatchMockedMethodAnalyzer.cs b/src/Analyzers/CallbackSignatureShouldMatchMockedMethodAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/CallbackSignatureShouldMatchMockedMethodAnalyzer.cs rename to src/Analyzers/CallbackSignatureShouldMatchMockedMethodAnalyzer.cs diff --git a/src/Moq.Analyzers/ConstructorArgumentsShouldMatchAnalyzer.cs b/src/Analyzers/ConstructorArgumentsShouldMatchAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/ConstructorArgumentsShouldMatchAnalyzer.cs rename to src/Analyzers/ConstructorArgumentsShouldMatchAnalyzer.cs diff --git a/src/Moq.Analyzers/GlobalSuppressions.cs b/src/Analyzers/GlobalSuppressions.cs similarity index 100% rename from src/Moq.Analyzers/GlobalSuppressions.cs rename to src/Analyzers/GlobalSuppressions.cs diff --git a/src/Moq.Analyzers/Moq.Analyzers.csproj b/src/Analyzers/Moq.Analyzers.csproj similarity index 92% rename from src/Moq.Analyzers/Moq.Analyzers.csproj rename to src/Analyzers/Moq.Analyzers.csproj index 10ecf8b60..342bfff14 100644 --- a/src/Moq.Analyzers/Moq.Analyzers.csproj +++ b/src/Analyzers/Moq.Analyzers.csproj @@ -27,8 +27,9 @@ + + - @@ -40,7 +41,7 @@ - + diff --git a/src/Moq.Analyzers/NoMethodsInPropertySetupAnalyzer.cs b/src/Analyzers/NoMethodsInPropertySetupAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/NoMethodsInPropertySetupAnalyzer.cs rename to src/Analyzers/NoMethodsInPropertySetupAnalyzer.cs diff --git a/src/Moq.Analyzers/NoSealedClassMocksAnalyzer.cs b/src/Analyzers/NoSealedClassMocksAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/NoSealedClassMocksAnalyzer.cs rename to src/Analyzers/NoSealedClassMocksAnalyzer.cs diff --git a/src/Moq.Analyzers/Resources.Designer.cs b/src/Analyzers/Resources.Designer.cs similarity index 100% rename from src/Moq.Analyzers/Resources.Designer.cs rename to src/Analyzers/Resources.Designer.cs diff --git a/src/Moq.Analyzers/Resources.resx b/src/Analyzers/Resources.resx similarity index 100% rename from src/Moq.Analyzers/Resources.resx rename to src/Analyzers/Resources.resx diff --git a/src/Moq.Analyzers/SetExplicitMockBehaviorAnalyzer.cs b/src/Analyzers/SetExplicitMockBehaviorAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/SetExplicitMockBehaviorAnalyzer.cs rename to src/Analyzers/SetExplicitMockBehaviorAnalyzer.cs diff --git a/src/Moq.Analyzers/SetupShouldBeUsedOnlyForOverridableMembersAnalyzer.cs b/src/Analyzers/SetupShouldBeUsedOnlyForOverridableMembersAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/SetupShouldBeUsedOnlyForOverridableMembersAnalyzer.cs rename to src/Analyzers/SetupShouldBeUsedOnlyForOverridableMembersAnalyzer.cs diff --git a/src/Moq.Analyzers/SetupShouldNotIncludeAsyncResultAnalyzer.cs b/src/Analyzers/SetupShouldNotIncludeAsyncResultAnalyzer.cs similarity index 100% rename from src/Moq.Analyzers/SetupShouldNotIncludeAsyncResultAnalyzer.cs rename to src/Analyzers/SetupShouldNotIncludeAsyncResultAnalyzer.cs diff --git a/src/Moq.Analyzers/SquiggleCop.Baseline.yaml b/src/Analyzers/SquiggleCop.Baseline.yaml similarity index 100% rename from src/Moq.Analyzers/SquiggleCop.Baseline.yaml rename to src/Analyzers/SquiggleCop.Baseline.yaml diff --git a/src/Moq.Analyzers/tools/install.ps1 b/src/Analyzers/tools/install.ps1 similarity index 100% rename from src/Moq.Analyzers/tools/install.ps1 rename to src/Analyzers/tools/install.ps1 diff --git a/src/Moq.Analyzers/tools/uninstall.ps1 b/src/Analyzers/tools/uninstall.ps1 similarity index 100% rename from src/Moq.Analyzers/tools/uninstall.ps1 rename to src/Analyzers/tools/uninstall.ps1 diff --git a/src/Moq.CodeFixes/CallbackSignatureShouldMatchMockedMethodCodeFix.cs b/src/CodeFixes/CallbackSignatureShouldMatchMockedMethodCodeFix.cs similarity index 100% rename from src/Moq.CodeFixes/CallbackSignatureShouldMatchMockedMethodCodeFix.cs rename to src/CodeFixes/CallbackSignatureShouldMatchMockedMethodCodeFix.cs diff --git a/src/CodeFixes/Moq.CodeFixes.csproj b/src/CodeFixes/Moq.CodeFixes.csproj new file mode 100644 index 000000000..d9a8dcc93 --- /dev/null +++ b/src/CodeFixes/Moq.CodeFixes.csproj @@ -0,0 +1,15 @@ + + + + Moq.CodeFixes + Moq.CodeFixes + netstandard2.0 + + + + + + + + + diff --git a/src/Moq.CodeFixes/SquiggleCop.Baseline.yaml b/src/CodeFixes/SquiggleCop.Baseline.yaml similarity index 99% rename from src/Moq.CodeFixes/SquiggleCop.Baseline.yaml rename to src/CodeFixes/SquiggleCop.Baseline.yaml index 5a9f519a3..cfd419db8 100644 --- a/src/Moq.CodeFixes/SquiggleCop.Baseline.yaml +++ b/src/CodeFixes/SquiggleCop.Baseline.yaml @@ -1049,7 +1049,7 @@ - {Id: S2479, Title: Whitespace and control characters in string literals should be explicit, Category: Critical Code Smell, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: false} - {Id: S2486, Title: Generic exceptions should not be ignored, Category: Minor Code Smell, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: false} - {Id: S2551, Title: Shared resources should not be used for locking, Category: Critical Bug, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: false} -- {Id: S2583, Title: Conditionally executed code should be reachable, Category: Major Bug, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: false} +- {Id: S2583, Title: Conditionally executed code should be reachable, Category: Major Bug, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: true} - {Id: S2589, Title: Boolean expressions should not be gratuitous, Category: Major Code Smell, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: true} - {Id: S2612, Title: Setting loose file permissions is security-sensitive, Category: Major Security Hotspot, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: false} - {Id: S2629, Title: Logging templates should be constant, Category: Major Code Smell, DefaultSeverity: Warning, IsEnabledByDefault: true, EffectiveSeverities: [Error], IsEverSuppressed: false} diff --git a/src/Moq.Analyzers/Common/ArrayExtensions.cs b/src/Common/ArrayExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/ArrayExtensions.cs rename to src/Common/ArrayExtensions.cs diff --git a/src/Common/Common.csproj b/src/Common/Common.csproj new file mode 100644 index 000000000..5a1087c77 --- /dev/null +++ b/src/Common/Common.csproj @@ -0,0 +1,36 @@ + + + + + + netstandard2.0 + Moq.Analyzers.Common + $(RootNamespace) + false + false + false + + + + + false + true + + + + + + + + diff --git a/src/Common/Common.projitems b/src/Common/Common.projitems new file mode 100644 index 000000000..3eb732434 --- /dev/null +++ b/src/Common/Common.projitems @@ -0,0 +1,5 @@ + + + + + diff --git a/src/Moq.Analyzers/Common/CompilationExtensions.cs b/src/Common/CompilationExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/CompilationExtensions.cs rename to src/Common/CompilationExtensions.cs diff --git a/src/Moq.Analyzers/Common/CompilationOptionsExtensions.cs b/src/Common/CompilationOptionsExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/CompilationOptionsExtensions.cs rename to src/Common/CompilationOptionsExtensions.cs diff --git a/src/Moq.Analyzers/Common/DiagnosticCategory.cs b/src/Common/DiagnosticCategory.cs similarity index 100% rename from src/Moq.Analyzers/Common/DiagnosticCategory.cs rename to src/Common/DiagnosticCategory.cs diff --git a/src/Moq.Analyzers/Common/DiagnosticExtensions.cs b/src/Common/DiagnosticExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/DiagnosticExtensions.cs rename to src/Common/DiagnosticExtensions.cs diff --git a/src/Moq.Analyzers/Common/DiagnosticIds.cs b/src/Common/DiagnosticIds.cs similarity index 100% rename from src/Moq.Analyzers/Common/DiagnosticIds.cs rename to src/Common/DiagnosticIds.cs diff --git a/src/Moq.Analyzers/Common/EnumerableExtensions.cs b/src/Common/EnumerableExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/EnumerableExtensions.cs rename to src/Common/EnumerableExtensions.cs diff --git a/src/Moq.Analyzers/GlobalUsings.cs b/src/Common/GlobalUsings.cs similarity index 100% rename from src/Moq.Analyzers/GlobalUsings.cs rename to src/Common/GlobalUsings.cs diff --git a/src/Moq.Analyzers/Common/ISymbolExtensions.cs b/src/Common/ISymbolExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/ISymbolExtensions.cs rename to src/Common/ISymbolExtensions.cs diff --git a/src/Moq.Analyzers/Common/InvocationExpressionSyntaxExtensions.cs b/src/Common/InvocationExpressionSyntaxExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/InvocationExpressionSyntaxExtensions.cs rename to src/Common/InvocationExpressionSyntaxExtensions.cs diff --git a/src/Moq.Analyzers/Common/MoqMethodDescriptorBase.cs b/src/Common/MoqMethodDescriptorBase.cs similarity index 100% rename from src/Moq.Analyzers/Common/MoqMethodDescriptorBase.cs rename to src/Common/MoqMethodDescriptorBase.cs diff --git a/src/Moq.Analyzers/MoqSetupMethodDescriptor.cs b/src/Common/MoqSetupMethodDescriptor.cs similarity index 97% rename from src/Moq.Analyzers/MoqSetupMethodDescriptor.cs rename to src/Common/MoqSetupMethodDescriptor.cs index ee81d8dc7..f8d1fb6bb 100644 --- a/src/Moq.Analyzers/MoqSetupMethodDescriptor.cs +++ b/src/Common/MoqSetupMethodDescriptor.cs @@ -1,4 +1,4 @@ -namespace Moq.Analyzers; +namespace Moq.Analyzers.Common; /// /// A class that, given a and a , determines if diff --git a/src/Moq.Analyzers/Common/SemanticModelExtensions.cs b/src/Common/SemanticModelExtensions.cs similarity index 100% rename from src/Moq.Analyzers/Common/SemanticModelExtensions.cs rename to src/Common/SemanticModelExtensions.cs diff --git a/src/Moq.Analyzers/Common/WellKnownTypeNames.cs b/src/Common/WellKnownTypeNames.cs similarity index 100% rename from src/Moq.Analyzers/Common/WellKnownTypeNames.cs rename to src/Common/WellKnownTypeNames.cs diff --git a/src/Moq.CodeFixes/Moq.CodeFixes.csproj b/src/Moq.CodeFixes/Moq.CodeFixes.csproj deleted file mode 100644 index 6a8c09ceb..000000000 --- a/src/Moq.CodeFixes/Moq.CodeFixes.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - Moq.CodeFixes - Moq.CodeFixes - netstandard2.0 - - - - - - - - - - - - - - - - - - - - diff --git a/tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj b/tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj index 99cc58900..5e9bd272e 100644 --- a/tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj +++ b/tests/Moq.Analyzers.Benchmarks/Moq.Analyzers.Benchmarks.csproj @@ -7,7 +7,7 @@ - + diff --git a/tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj b/tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj index e5cfe8880..d3a9e656c 100644 --- a/tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj +++ b/tests/Moq.Analyzers.Test.Analyzers/Moq.Analyzers.Test.Analyzers.csproj @@ -11,7 +11,7 @@ - + diff --git a/tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj b/tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj index 6effaf6f2..eaebf1199 100644 --- a/tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj +++ b/tests/Moq.Analyzers.Test/Moq.Analyzers.Test.csproj @@ -25,8 +25,8 @@ - - + + \ No newline at end of file