避免在特定区域中自动设置代码格式

Avoid Visual Studio autoformatting code in specific region

提问人:Anders Forsgren 提问时间:11/17/2023 更新时间:11/17/2023 访问量:37

问:

使用 .editorconfig 配置格式并启用自动格式化(或运行 )时,有没有办法禁止特定区域/代码块的格式化?dotnet format

例如,我有一个文件,其中定义了 1000 个常量,这些常量排列在整齐的列中。对于这样的例外,我想使用类似的东西

class Example
{
#preserve-format
   // A block I want automatic formatting to just ignore
   const int A      = 123;
   const int Longer = 234;
   const int ...
   ...
#end-preserve-format

   // Formatter works normally here
   public void Foo() 
   { 
   } 
}

有什么东西可以做到这一点吗?

C# .NET 可视化工作室 编辑器配置

评论

0赞 MakePeaceGreatAgain 11/17/2023
我怀疑有没有。您可以使用您的 VCS 并在那里重新滚动所有格式。

答:

0赞 Julian 11/17/2023 #1

作为替代方案,您可以将类拆分为两部分,并对包含整齐格式常量的文件应用不同的格式规则,例如:#pragma

示例类第 1 部分:Example.Part1.cs

partial class Example
{
   // A block I want automatic formatting to just ignore
   const int A      = 123;
   const int Longer = 234;
   // ...
}

然后将类的其余部分添加到第 2 部分:Example.Part2.cs

partial class Example
{
   // Formatter works normally here
   public void Foo() 
   { 
   }
}

然后,在 .editorconfig 中,可以覆盖 Example.Part1.cs 文件的格式设置规则:

[*/**Example.Part1.cs]
csharp_space_around_declaration_statements = ignore
3赞 Mocas 11/17/2023 #2

是的,您可以使用 #pragma

class Example
{
#pragma warning disable format
   // A block I want automatic formatting to just ignore
   const int A      = 123;
   const int Longer = 234;
   const int ...
   ...
#pragma warning restore format

   // Formatter works normally here
   public void Foo() 
   { 
   } 
}

评论

0赞 Julian 11/17/2023
我以前不知道,整洁!无论如何,我会把我的答案作为替代方案。format
0赞 Mocas 11/17/2023
是的,这很酷:D