Gre*_*reg 7 .net c# static-analysis editorconfig visual-studio-2022
在 Visual Studio 2022 中,您是否可以设置解决方案范围的 .editorconfig 文件,然后项目覆盖或添加到解决方案范围的特定 .editorconfig 文件?
就我而言,我希望对单元测试项目有不同的设置,和/或禁用遗留项目上的遗留方法警告。
Visual Studio 2022 支持此功能吗?
编辑:作为补充,我熟悉有关.editorconfig 文件夹层次结构的MS 文档。
文档中的方法不适用于我的实际项目或特意创建的演示项目。它在 VS2022 17.4.3 和 Preview 17.5 上进行了测试。凭借经验,您将了解到文档和功能并不总是一致。;)
是的,文件的设置.editorconfig是分层的,子.editorconfig文件中的设置会添加到或覆盖父.editorconfig文件中的设置。
甚至可以通过包含root = true在子文件中来停止从子文件夹中的某个级别开始的继承.editorconfig。
从文档中
当您将
.editorconfig文件添加到文件层次结构中的文件夹时,其设置将应用于该级别及以下级别的所有适用文件。
要覆盖部分或全部 EditorConfig 设置,请在
.editorconfig您希望应用这些覆盖设置的文件层次结构级别添加一个文件。新的 EditorConfig 文件设置适用于同一级别的文件和任何子目录。
如果您想覆盖某些设置,但不是全部设置,请仅在
.editorconfig文件中指定这些设置。只有那些在较低级别文件中明确列出的属性才会被覆盖。更高级别.editorconfig文件中的其他设置继续应用。
这样的文件夹和文件层次结构可能如下所示。
\ YourSolution
- YourSolution.sln
- .editorconfig
...
\ Src
\ Project1
...
\ Project2
...
\ Project3
- .editorconfig
...
\ Tests
- .editorconfig
\ Tests1
...
\ Tests2
- .editorconfig
Run Code Online (Sandbox Code Playgroud)
根.editorconfig文件也可以位于所有 Visual Studio 解决方案的公共父文件夹中。
\ YourSolutions
- .editorconfig
\ YourSolution1
- YourSolution1.sln
...
\ YourSolution2
- YourSolution2.sln
...
Run Code Online (Sandbox Code Playgroud)
示例文件。
根.editorconfig文件
[*.cs]
dotnet_sort_system_directives_first = true
dotnet_style_require_accessibility_modifiers =
for_non_interface_members:error
Run Code Online (Sandbox Code Playgroud)
子文件夹.editorconfig文件
[*.cs]
dotnet_sort_system_directives_first = false
dotnet_style_require_accessibility_modifiers =
for_non_interface_members:silent
Run Code Online (Sandbox Code Playgroud)
在 VS2022 17.4.3+ 中,处理多个 .editorconfig 时,您可能需要使用标准文本编辑器而不是默认的 .editorconfig gui 工具。