C# 代码格式化工具 CSharpier 上手指南 您所在的位置:网站首页 什么叫代码格式化手机 C# 代码格式化工具 CSharpier 上手指南

C# 代码格式化工具 CSharpier 上手指南

2024-07-06 18:47| 来源: 网络整理| 查看: 265

简介 ¶

CSharpier 是一个针对 C# 代码的格式化工具,它可以帮助开发者自动化地调整代码的格式,使其更加一致和易于阅读。CSharpier 提供了丰富的配置选项,可以根据项目的需求定制代码格式化的规则。

它的官方介绍是「CSharpier is an opinionated code formatter for C#」,其中的“opinionated”是一个英文词,意思是“有主见的”或“有偏见的”。它想表达的是,该工具对代码格式化有自己的偏好和主见,即它会按照自己的规则来格式化代码,而不是完全按照用户的意愿。在下面的内容中,大家不难看出,CSharpier 几乎没有提供多少可以配置的选项。

安装 ¶

在 VS 的扩展中安装了 CSharpier 后,重启 VS 后会在上方提示安装工具,但是也可以自行安装,方式如下:

1 dotnet tool install -g csharpier

如果希望更新,那么可以:

1 dotnet tool update -g csharpier

除了 VS,VS Code、Rider 中也都有同名的扩展。

配置 ¶

可以在项目的根目录(通常与 .sln 文件位置相同)创建一个配置文件,可以是下面三个的任意一种:

.csharpierrc.csharpierrc.json.csharpierrc.yaml

支持的配置项非常少,常用的一些如下:

1 2 3 4 5 6 { "printWidth": 100, "useTabs": false, "tabWidth": 4, "preprocessorSymbolSets": ["", "DEBUG", "DEBUG,CODE_STYLE"] }

或者

1 2 3 4 5 6 7 printWidth: 100 useTabs: false tabWidth: 4 preprocessorSymbolSets: - "" - "DEBUG" - "DEBUG,CODE_STYLE"

其中最后一个配置项与代码中预编译器指令(如 #if DEBUG)有关,详见官方的配置文档。

实用场景 ¶

这里我随便写了一大段 C# 代码,大家可以拷贝到自己常用的 C# 开发工具中,然后使用 CSharpier 格式化,从而查看效果。

CSharpier 还提供了一个Playground,方便大家在线体验它的效果。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class CSharpierDemo { private readonly List allowedExtensions = new List { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".tif", ".webp", ".heic" }; private int[,] map = new [,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register("MyProperty", typeof(string), typeof(MyControl), new PropertyMetadata("")); [JsonIgnore] public string MyProperty1 { get; set; } [JsonIgnore] public string MyProperty2 { get; set; } [JsonIgnore] public string MyProperty3 { get; set; } private void Foo() { allowedExtensions.Select(x => x.Trim().ToLower()).Select(x => x.TrimLeft('.')).Where(x => x.Length == 3).ToList().ForEach(x => Console.WriteLine(x)); var exts = from x in allowedExtensions select x.Trim().ToLower() into x select x.TrimLeft('.') into x where x.Length == 3 select x; } private void FooWithManyParameters([FromHeader(Name = "Id")] long id, [FromQuery(Name = "first_name")] string firstName, [FromQuery(Name = "last_name")] string lastName, string? middleName = null, Action? callback = null, Action? errorCallback = null) { // ... } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有