Skip to content

Custom editor config with .Net and C# coding style rules

Notifications You must be signed in to change notification settings

T-450/dotNet_Csharp_EditorConfig

Repository files navigation

.Net/CSharp EditorConfig configuration file

Used to define and maintain consistent code styles between team members working on the same code as well as between different editors and IDEs that they might use.

How do I use It?

All you have to do is drop it into the root of your project. Then any time you open a file in Visual Studio, the .editorconfig file settings will be used to help format the document and also raise warnings if your code style and formatting does not conform. For Visual Studio Code, you can install the EditorConfig for VS Code extension to get support.

.NET Code Style

Extensive code style settings for C# and VB.NET have been defined that require the latest C# features to be used. All C# related code styles are consistent with StyleCop's default styles, with the exception of the file header definition, which has been changed to a more modern format. All .NET naming conventions are consistent with the .NET Framework Design Guideline's Naming Guidelines.

.NET-coding-convention EditorCofnig properties

Custom EditorConfig properties

Custom EditorConfig properties that allow configuring code style and code inspection settings. Properties for code inspections can be found here:

Properties for code style and formatting settings are listed in the child pages of the Reformat C# code topic:

How can I get it?

Download the .editorconfig file in this repository and place .editorconfig file in you current directory.

Code Formatting Tools in dotnet

To help enable an easy workflow and reduce the number of formatting changes requested, this document provides steps to download and enable the various different tools in different development environments to enable a seamless workflow for ensuring that keeping code formatted is a pleasant experience.

Downloading formatting tools

C#/VB

C# and VB code in the repository use the built-in Roslyn support for EditorConfig to enable auto-formatting in many IDEs. As a result, no additional tools are required to enable keeping your code formatted. If you want to use dotnet format to do formatting or are using the git pre-commit hook mentioned later in this document, you can run ./dotnet.cmd tool restore or ./dotnet.sh tool restore from the root of the repository to enable the dotnet format command.

Setting up automatic formatting

To make the formatting workflow more seamless for contributors, instructions are included below to help enable "format-on-save" or other forms of automatic formatting in various different IDEs or as a Git pre-commit hook for IDEs that do not support "format-on-save" scenarios.

This section is open to contributions for instructions on how to enable "format-on-save"-like semantics in IDEs and editors not mentioned.

Visual Studio Code

Enabling a "format-on-save" experience in VSCode is quite easy. Add the following setting to your .vscode/settings.json file to enable "format-on-save":

    "editor.formatOnSave": true,

The sections below include any additional instructions to configure the experience for different languages.

C#/VB

There are currently some limitations in OmniSharp that causes issues with the auto-formatting. Once a VSCode C# extension releases with both OmniSharp/omnisharp-roslyn#2227 and dotnet/vscode-csharp#4738, then format-on-save should be possible to enable in VSCode for C# and Visual Basic sources.

Visual Studio

Visual Studio does not have a "format-on-save" feature but it does have settings for "format on end of statement" or "format on end of block" that can provide some auto-formatting features.

Using these features in combination with the steps specified in the Git Hooks section will enable a seamless formatting experience.

The settings for C#, VB, C, and C++ are all in a dialog under the Tools > Options menu item.

C#/VB

In the options view, go to Text Editor > C# > Code Style > Formatting > General for C# settings. Make sure to check the various options for whenever you want Visual Studio to auto-format your code.

Git Hooks

Git provides a number of hooks to enable running scripts before commit, push, pull, etc. This section describes adding a pre-commit hook to automatically format code before committing to make formatting seamless even when your development environment doesn't support "format-on-save" or similar functionality with the formatting tools this repository uses.

Auto-format before committing

To enable auto-formatting before committing, you can create a .git/hooks/pre-commit file in your local dotnet/runtime clone and add a call to the script located at eng/formatting/format.sh to auto-format your code before committing. Since Git for Windows also installs Git Bash, this script will work for both Windows and non-Windows platforms.

The following code block can be used as the contents of the pre-commit file to enable the auto-formatting hook:

#!/bin/sh
./eng/formatting/format.sh

About

Custom editor config with .Net and C# coding style rules

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published