Giter Site home page Giter Site logo

rehansaeed / editorconfig Goto Github PK

View Code? Open in Web Editor NEW
622.0 23.0 171.0 104 KB

A very generic .editorconfig file supporting .NET, C#, VB and web technologies.

License: MIT License

editorconfig editorconfig-settings dotnet web csharp visual-studio stylecop

editorconfig's Introduction

.editorconfig Banner

A very generic .editorconfig file supporting the following file types:

  • C# - .cs, .csx, .cake
  • Visual Basic - .vb, vbx
  • Script - .sh, .ps1, .psm1, .bat, .cmd
  • XML - .xml, .config, .props, .targets, .nuspec, .resx, .ruleset
  • JSON - .json, .json5
  • YAML - .yml, .yaml
  • HTML - .htm, .html
  • JavaScript - .js, .jsm, .ts, .tsx, .vue
  • CSS - .css, .sass, .scss, .less, .pcss
  • SVG - .svg
  • Markdown - .md
  • Visual Studio - .sln, .csproj, .vbproj, .vcxproj, .vcxproj.filters, .proj, .projitems, .shproj
  • Makefile

.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.

What is .editorconfig?

EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs. The EditorConfig project consists of a file format for defining coding styles and a collection of text editor plugins that enable editors to read the file format and adhere to defined styles. EditorConfig files are easily readable and they work nicely with version control systems. Find out more at editorconfig.org and the Visual Studio Docs.

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.

How can I get it?

Download the .editorconfig file in this repository or you can install the .NET Boxed templates and use the dotnet new CLI to create a new .editorconfig file in you current directory like so:

dotnet new --install Boxed.Templates
dotnet new editorconf

editorconfig's People

Contributors

ddieppa avatar graue70 avatar henrygab avatar jpawlowski avatar kirkone avatar loynoir avatar muiriswoulfe avatar rehansaeed avatar rpf3 avatar vannevelj avatar xeevis avatar ye4241 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

editorconfig's Issues

New Formerly Experimental Settings

Describe the feature

Several settings are currently experimental but will soon be published formerly:

When this happens, update the .editorconfig.

Rules

# IDE2000, AllowMultipleBlankLines
dotnet_style_allow_multiple_blank_lines_experimental = false:warning
# IDE2001, AllowEmbeddedStatementsOnSameLine
csharp_style_allow_embedded_statements_on_same_line_experimental = false:warning
# IDE2002, AllowBlankLinesBetweenConsecutiveBraces
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false:warning
# IDE2003, AllowStatementImmediatelyAfterBlock
dotnet_style_allow_statement_immediately_after_block_experimental = false:warning
# IDE2004, AllowBlankLineAfterColonInConstructorInitializer
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false:warning

Improved .editorconfig compliance with .NET guidelines

This is a somewhat long post, expanding somewhat on Dotnet-Boxed/Framework#22.

TLDR;

  1. Split naming rules into those specified by the .NET naming guidelines, and those which are user-preference.
  2. Make it clearer where users can add customizations and overrides without stepping on the .NET naming guidelines.
  3. Make it annoying to use public fields that are disallowed by the .NET Design Guidelines.

Foundational Background

Because of the above, the state for a given field is defined by:

  • {true|false} field type allowed by the .NET design guidelines
  • {null|pascal} naming convention specified by the naming guidelines

The recommendation is to split field name formatting as follows:

  1. {true, pascal} == public const, protected const
  2. {true, pascal} == public static readonly, protected static readonly
  3. user-specified rules for private, internal, and protected fields
  4. {true, null} == catch-all for private, internal, and protected internal fields
  5. {false, *} == any other type of field not in above categories

Version 4.1.0 still says "4.0.0" on the file header

Describe the bug

Latest version on the project is 4.1.0 as per https://github.com/RehanSaeed/EditorConfig/releases , however when looking at the file's contents, the header still says it is version 4.0.0:

# Version: 4.0.0 (Using https://semver.org/)
# Updated: 2021-10-12

Aparently, the update date also doesn't match with the newest version.

Expected behaviour

File version should match the release version to avoid confusion for consumers.

Is there a way to enforce const to be real Pascal Case only?

Currently, there is no way to prevent the const fields to use all upper case. Even though in .editorconfig, already defined to be pascal_case only, but it doesn't seem to be able to differentiate all_upper vs pascal_case. Any workaround for this?

New Settings in VS 16.10

VS 16.10 adds new settings. Settings are suffixed with _experimental. Wait for it to be released before adding.

See dotnet/roslyn#50358

# IDE2000, AllowMultipleBlankLines
dotnet_style_allow_multiple_blank_lines_experimental = true
# IDE2001, AllowEmbeddedStatementsOnSameLine
csharp_style_allow_embedded_statements_on_same_line_experimental = true
# IDE2002, AllowBlankLinesBetweenConsecutiveBraces
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
# IDE2003, AllowStatementImmediatelyAfterBlock
dotnet_style_allow_statement_immediately_after_block_experimental = true
# IDE2004, AllowBlankLineAfterColonInConstructorInitializer
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true

See dotnet/roslyn#49990

dotnet_style_namespace_match_folder

See dotnet/roslyn#55005

csharp_style_prefer_null_check_over_type_check

New Settings in VS 16.11

Edit: Moved these settings to: #76. More settings listed below.

See dotnet/roslyn#50358

# IDE2000, AllowMultipleBlankLines
dotnet_style_allow_multiple_blank_lines_experimental = false:warning
# IDE2001, AllowEmbeddedStatementsOnSameLine
csharp_style_allow_embedded_statements_on_same_line_experimental = false:warning
# IDE2002, AllowBlankLinesBetweenConsecutiveBraces
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false:warning
# IDE2003, AllowStatementImmediatelyAfterBlock
dotnet_style_allow_statement_immediately_after_block_experimental = false:warning
# IDE2004, AllowBlankLineAfterColonInConstructorInitializer
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false:warning

Adding .editorconfig breaks TreatWarningsAsErrors

Describe the bug

Adding the .editorconfig file from repo main breaks TreatWarningsAsErrors

To Reproduce

  1. Download the attached project ErrorsTest.zip
  2. Set build configuration to Release and build.
  3. StyleCop warnings are not treated as errors and do not cause the build to fail.
  4. Remove .editorconfig file and rebuild. Build will fail.

Expected behaviour

When the build configuration is set to release the build should fail.

Rules

Provide links to any rules in question.

Support for .razor files

Maybe I did something wrong but is there a way to be able to use all the c# settings also in *.razor files?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.