SharpSource 1.25.2
dotnet add package SharpSource --version 1.25.2
NuGet\Install-Package SharpSource -Version 1.25.2
<PackageReference Include="SharpSource" Version="1.25.2"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add SharpSource --version 1.25.2
#r "nuget: SharpSource, 1.25.2"
// Install SharpSource as a Cake Addin #addin nuget:?package=SharpSource&version=1.25.2 // Install SharpSource as a Cake Tool #tool nuget:?package=SharpSource&version=1.25.2
Quickstart
Install it through the command line:
Install-Package SharpSource
or add a reference yourself:
<ItemGroup>
<PackageReference Include="SharpSource" Version="1.25.2" PrivateAssets="All" />
</ItemGroup>
If you would like to install it as an extension instead, download it from the marketplace.
This repo houses a collection of analyzers that aim to make some language features and framework types easier to work with. It does this by highlighting when you might be using something incorrectly in a way that would result in suboptimal performance, runtime exceptions or general unintended behaviour.
In other words, this repo only contains analyzers for patterns that have a concrete potential to turn into a defect ticket. It is not intended to help with general housekeeping tasks like formatting your code or providing productivity helpers.
Interested in contributing? Take a look at the guidelines!
Detailed explanations of each analyzer can be found in the documentation: https://github.com/Vannevelj/SharpSource/tree/master/docs
Code | Name |
---|---|
SS001 | AsyncMethodWithVoidReturnType |
SS002 | DateTimeNow |
SS003 | DivideIntegerByInteger |
SS004 | ElementaryMethodsOfTypeInCollectionNotOverridden |
SS005 | EqualsAndGetHashcodeNotImplementedTogether |
SS006 | ThrowNull |
SS007 | FlagsEnumValuesAreNotPowersOfTwo |
SS008 | GetHashCodeRefersToMutableMember |
SS009 | LoopedRandomInstantiation |
SS010 | NewGuid |
SS011 | OnPropertyChangedWithoutNameofOperator |
SS012 | RecursiveOperatorOverload |
SS013 | RethrowExceptionWithoutLosingStacktrace |
SS014 | StringDotFormatWithDifferentAmountOfArguments |
SS015 | StringPlaceholdersInWrongOrder |
SS017 | StructWithoutElementaryMethodsOverridden |
SS018 | SwitchDoesNotHandleAllEnumOptions |
SS019 | SwitchIsMissingDefaultLabel |
SS020 | TestMethodWithoutPublicModifier |
SS021 | TestMethodWithoutTestAttribute |
SS022 | ExceptionThrownFromImplicitOperator |
SS023 | ExceptionThrownFromPropertyGetter |
SS024 | ExceptionThrownFromStaticConstructor |
SS025 | ExceptionThrownFromFinallyBlock |
SS026 | ExceptionThrownFromEqualityOperator |
SS027 | ExceptionThrownFromDispose |
SS028 | ExceptionThrownFromFinalizer |
SS029 | ExceptionThrownFromGetHashCode |
SS030 | ExceptionThrownFromEquals |
SS032 | ThreadSleepInAsyncMethod |
SS033 | AsyncOverloadsAvailable |
SS034 | AccessingTaskResultWithoutAwait |
SS035 | SynchronousTaskWait |
SS036 | ExplicitEnumValues |
SS037 | HttpClientInstantiatedDirectly |
SS038 | HttpContextStoredInField |
SS039 | EnumWithoutDefaultValue |
SS040 | UnusedResultOnImmutableObject |
SS041 | UnnecessaryEnumerableMaterialization |
SS042 | InstanceFieldWithThreadStatic |
SS043 | MultipleFromBodyParameters |
SS044 | AttributeMustSpecifyAttributeUsage |
SS045 | StaticInitializerAccessedBeforeInitialization |
SS046 | UnboundedStackalloc |
SS047 | LinqTraversalBeforeFilter |
SS048 | LockingOnDiscouragedObject |
SS049 | ComparingStringsWithoutStringComparison |
SS050 | ParameterAssignedInConstructor |
SS051 | LockingOnMutableReference |
SS052 | ThreadStaticWithInitializer |
SS053 | PointlessCollectionToString |
SS054 | NewtonsoftMixedWithSystemTextJson |
SS055 | MultipleOrderByCalls |
SS056 | FormReadSynchronously |
SS057 | CollectionManipulatedDuringTraversal |
SS058 | StringConcatenatedInLoop |
SS059 | DisposeAsyncDisposable |
SS060 | ConcurrentDictionaryEmptyCheck |
Configuration
Is a particular rule not to your liking? There are many ways to adjust their severity and even disable them altogether. For an overview of some of the options, check out this document.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.25.2 | 1,608 | 9/15/2024 |
1.25.1 | 99 | 9/15/2024 |
1.25.0 | 130 | 9/15/2024 |
1.24.1 | 149 | 9/13/2024 |
1.24.0 | 8,950 | 2/21/2024 |
1.23.4 | 856 | 1/5/2024 |
1.23.3 | 5,682 | 5/15/2023 |
1.23.2 | 789 | 3/18/2023 |
1.23.1 | 2,017 | 2/28/2023 |
1.23.0 | 309 | 2/26/2023 |
1.22.2 | 285 | 2/25/2023 |
1.22.1 | 309 | 2/21/2023 |
1.22.0 | 275 | 2/21/2023 |
1.21.6 | 679 | 2/10/2023 |
1.21.5 | 405 | 1/31/2023 |
1.21.4 | 336 | 1/29/2023 |
1.21.3 | 330 | 1/25/2023 |
1.21.2 | 312 | 1/23/2023 |
1.21.1 | 316 | 1/22/2023 |
1.21.0 | 328 | 1/21/2023 |
1.20.0 | 345 | 1/20/2023 |
1.19.1 | 364 | 1/14/2023 |
1.19.0 | 328 | 1/12/2023 |
1.18.0 | 10,940 | 1/10/2023 |
1.17.6 | 341 | 1/8/2023 |
1.17.5 | 357 | 1/6/2023 |
1.17.4 | 346 | 1/4/2023 |
1.17.3 | 327 | 1/3/2023 |
1.17.2 | 353 | 1/2/2023 |
1.17.1 | 327 | 1/2/2023 |
1.17.0 | 348 | 1/1/2023 |
1.16.22 | 347 | 1/1/2023 |
1.16.21 | 342 | 1/1/2023 |
1.16.20 | 328 | 1/1/2023 |
1.16.19 | 333 | 1/1/2023 |
1.16.18 | 317 | 12/31/2022 |
1.16.17 | 300 | 12/31/2022 |
1.16.16 | 337 | 12/30/2022 |
1.16.15 | 346 | 12/30/2022 |
1.16.14 | 353 | 12/30/2022 |
1.16.13 | 299 | 12/30/2022 |
1.16.12 | 319 | 12/30/2022 |
1.16.11 | 336 | 12/30/2022 |
1.16.10 | 321 | 12/30/2022 |
1.16.9 | 332 | 12/30/2022 |
1.16.8 | 301 | 12/30/2022 |
1.16.7 | 340 | 12/30/2022 |
1.16.6 | 336 | 12/30/2022 |
1.16.5 | 358 | 12/29/2022 |
1.16.4 | 341 | 12/29/2022 |
1.16.3 | 309 | 12/29/2022 |
1.16.2 | 338 | 12/29/2022 |
1.16.1 | 342 | 12/28/2022 |
1.16.0 | 305 | 12/27/2022 |
1.15.0 | 342 | 12/25/2022 |
1.14.1 | 9,669 | 10/16/2022 |
1.14.0 | 436 | 10/16/2022 |
1.13.1 | 429 | 10/1/2022 |
1.13.0 | 423 | 10/1/2022 |
1.12.0 | 478 | 9/25/2022 |
1.11.2 | 457 | 9/25/2022 |
1.11.1 | 423 | 9/24/2022 |
1.11.0 | 462 | 9/24/2022 |
1.10.1 | 447 | 9/16/2022 |
1.10.0 | 492 | 9/14/2022 |
1.9.4 | 512 | 9/13/2022 |
1.9.3 | 434 | 9/12/2022 |
1.9.2 | 415 | 9/12/2022 |
1.9.1 | 450 | 9/11/2022 |
1.9.0 | 453 | 9/11/2022 |
1.8.0 | 436 | 9/8/2022 |
1.7.2 | 453 | 9/6/2022 |
1.7.1 | 456 | 9/5/2022 |
1.7.0 | 450 | 9/5/2022 |
1.6.0 | 413 | 9/4/2022 |
1.5.0 | 416 | 9/4/2022 |
1.4.2 | 445 | 9/4/2022 |
1.3.1 | 451 | 9/3/2022 |
1.3.0 | 456 | 9/2/2022 |
1.2.4 | 460 | 8/31/2022 |
1.2.3 | 466 | 8/29/2022 |
1.2.2 | 457 | 8/29/2022 |
1.2.1 | 442 | 8/29/2022 |
1.2.0 | 456 | 8/29/2022 |
1.1.1 | 460 | 8/28/2022 |
1.1.0 | 441 | 8/28/2022 |
1.0.0 | 474 | 8/28/2022 |
0.9.0 | 464 | 8/26/2022 |
0.8.0 | 458 | 8/23/2022 |
0.7.0 | 419 | 8/22/2022 |
0.6.0 | 469 | 8/15/2022 |
0.5.0 | 440 | 8/14/2022 |
0.4.0 | 464 | 8/14/2022 |
0.3.0 | 536 | 5/10/2020 |
0.2.0 | 546 | 4/12/2020 |
0.1.0 | 572 | 4/12/2020 |
For a full overview of the changes, visit https://github.com/vannevelj/sharpsource/releases