Belp.Formatting 1.1.0

dotnet add package Belp.Formatting --version 1.1.0                
NuGet\Install-Package Belp.Formatting -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Belp.Formatting" Version="1.1.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Belp.Formatting --version 1.1.0                
#r "nuget: Belp.Formatting, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Belp.Formatting as a Cake Addin
#addin nuget:?package=Belp.Formatting&version=1.1.0

// Install Belp.Formatting as a Cake Tool
#tool nuget:?package=Belp.Formatting&version=1.1.0                

Belp.Formatting

An unofficial bundle of formatting tools to enforce writing C# in the most conventional manner possible.

The package deviates from Microsoft's established conventions in several areas. For example,

  • _camelCase for private fields.
  • PreEvent/PostEvent or BeforeEvent/AfterEvent instead of Eventing/Evented.

Furthermore, the opinion of this package on some disputed C# conventions are as follows,

  • Explicit type over var unless evident.
    IEnumerable<string> x = GetNames();
    var y = (string)obj;
    var z = new object();
    object a = new();
    int b = 2;
    var c = 3L;
    
  • All methods must use block bodies, as opposed to expression bodies. However, properties may use either block bodies or expression bodies.
  • All selective statements(if, switch), loop statements(while, for), and other similar statements must be accompanied by curly braces. One notable exception is a series of using statements after another.
    // Permitted
    using (null)
    using (null)
    using (null)
    {
    }
    
    // Permitted
    using (null)
    {
        using (null)
        {
            using (null)
            {
            }
        }
    }
    
  • No parentheses or grouping constructs unless necessary.
  • Switch case contents must be wrapped in {} and must have the break statement placed outside the curly braces if possible.

Comment Legend

#§ Analyzers section
#¶ Analyzers subsection
#: Analyzer description
#> Link to documentation
#! Per-project configuration
#? Per-user configuration
#- Removed
#X Superseded by another analyzer
#/ Miscellaneous comment

Some common reasons for an analyzer to be disabled is as follows,

  • Situational: the analyzer is sometimes useful and sometimes not.
  • Subjective: the reported issue is decided by the opinions of the developer.
  • Too broad: the analyzer reports too many false positives

Installation

Requirements

  • .NET SDK 8 or newer

Install using an Editor

  1. Locate the project file(for example, Project.csproj, Project.fsproj).
  2. Open the project file in an editor.
  3. Locate the an <ItemGroup>.
  4. Add a new PackageReference element to the item group with the Include attribute set to Belp.Formatting and the Version attribute set to 0.0.1 or a version of choosing. For example, <PackageReference Include="Belp.Formatting" Version="0.0.1" />.
  5. Run dotnet restore.
Uninstallation
  1. Locate the project file(for example, Project.csproj, Project.fsproj).
  2. Open the project file in an editor.
  3. Locate the PackageReference element with an Include attribute set to Belp.Formatting.
  4. Delete the element.

Install using the .NET CLI

  1. Open a terminal.
  2. Navigate to the containing directory of the project file.
  3. Run the command dotnet add package Belp.Formatting.
Uninstallation
  1. Open a terminal.
  2. Navigate to the containing directory of the project file.
  3. Run the command dotnet remove package Belp.Formatting.

Install using Visual Studio Package Manager

  1. Open Visual Studio.
  2. Right click the project in the Solution Explorer.
  3. Click on "Manage NuGet Packages".
  4. Go to the "Browse" tab.
  5. Search for Belp.Formatting.
  6. Install.
Uninstallation
  1. Open Visual Studio.
  2. Right click the project in the Solution Explorer.
  3. Click on "Manage NuGet Packages".
  4. Go to the "Installed" tab.
  5. Click on Belp.Formatting.
  6. Click on "Uninstall".

Usage

The package automatically configures the formatting upon installation.

Development

Prerequisites

  • Install the .NET 8.0 SDK version 8.0.100 or newer.

Building with Visual Studio

  1. Open Belp.Formatting.sln.
  2. Open the Solution Explorer.
  3. Right click on the project Belp.Formatting in the Solution Explorer.
  4. Click on Pack.

Building with .NET CLI

  1. Open a terminal in the repository root.
  2. Run dotnet pack

Output

By default, the output is located in src/Belp.Formatting/Belp.Formatting/bin/Release/.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.1.0 62 2/2/2025
1.0.0 193 11/11/2024

## 🆕 Features
- Added overrides for TUnit-based test projects
 - Automatically suppressed [`CA1062: Validate arguments of public methods`](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1062), because it activates on TUnit test cases, which need to be public but are not meant to be consumed. Therefore, the security and integrity gained by validating arguments is negligible.
 - Automatically suppressed [`CA1822: Mark members as static`](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1822), because TUnit test cases need to be instance methods despite often not accessing instance data.
 - Automatically suppressed [`CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member'`](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs1591), because it activates on TUnit test cases, which need to be public but are not meant to be consumed. The suppression can be removed by setting the `SuppressMissingDocumentationWarnings` property to false.
 - Automatically suppressed [`IDE0058: Remove unnecessary expression value`](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0058), because TUnit asserts return a non-void value and having to prefix all asserts with `_ =` unnecessarily increases verbosity.
 - Disabled the naming rule which required asynchronous methods to be suffixed by `Async`.
- Automatically unregistered formatting analyzers (of `StyleCop.Analyzers.Unstable` and `Roslynator.Formatting.Analyzers`) in builds where the `EnforceCodeStyleInBuild` property isn't set to `true`.
- Appended severities to all .editorconfig options which support it (such as `dotnet_style_qualification_for_field = false:warning`), so that the severities of diagnostics are consistent across `dotnet build`, `dotnet format`, and the IDE.
- Disabled [`SA1512: A single-line comment within C# code is followed by a blank line.`](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/ac00d09658078f3f4d41cbdd0e4b6d8540f0194f/documentation/SA1512.md), because it is situational.
- Enabled [`CA2022: Avoid inexact read with Stream.Read`](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2022).
- Enabled [`CA2265: Do not compare Span<T> to null or default`](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2265).
- Modified [`RCS1014: Use explicitly/implicitly typed array`](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1014) to prefer [collection expressions](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/collection-expressions).
- Made NuGet security auditing mandatory.
- Updated Roslynator from [`v4.12.10`](https://github.com/dotnet/roslynator/releases/tag/v4.12.10) to [`v4.12.11`](https://github.com/dotnet/roslynator/releases/tag/v4.12.11).

## 🐞 Fixes