.editorconfig indent_size 的意外后果

Hug*_*une 6 .net c# indentation editorconfig

使用.editorconfig文件,我可以配置 Visual Studio 应如何缩进代码。

现在,.NET 编译器平台的 .editorconfig 文件以及网络上的其他几个示例包含以下奇怪的注释:

[*]
indent_style = space
# (Please don't specify an indent_size here; that has too many unintended consequences.)
Run Code Online (Sandbox Code Playgroud)

在为所有文件类型定义默认缩进大小时,这么多意想不到的后果是什么?我是否也应该在自己的 .editorconfig 文件中避免这种情况,并且只为特定文件类型定义缩进大小?

定义默认缩进样式(制表符/空格)而不是默认缩进大小似乎很奇怪。

小智 1

正如您可以想象的那样,为所有文件定义缩进大小在强制执行时可能会对您的文件造成严重破坏。

YAML、Markdown 和其他文件格式具有显着的空白级别。编辑器可能对这些文件的支持程度有限(例如 VSCode + 插件),并且它可能会决定,由于它现在支持这些文件,因此.editorconfig可以将规则应用于它。如果文件重新格式化错误,语义就会改变。最坏的情况是,这种情况会自动发生,并且结果在语法上也是有效的,但在语义上不同。这可能会导致讨厌的错误。

可能发生的一个相对良性但烦人的事情是,如果格式化程序决定它们都应该具有相同的缩进,那么所有 Markdown 嵌套列表都会突然变平。