如何阻止ReSharper删除对象初始值设定项中的空格

Nat*_*ley 36 c# resharper formatting

我喜欢我的对象初始化器看起来像这样:

new Point { Label = g.Key.Name, Claims = g };
Run Code Online (Sandbox Code Playgroud)

当按分号键时,它们会像这样重新格式化:

new Point {Label = g.Key.Name, Claims = g};
Run Code Online (Sandbox Code Playgroud)

阻止我的填充被删除的选项在哪里?

Aak*_*shM 72

对于R#7,我可以通过转到1来改变它

ReSharper | 选项| 代码编辑| C#| 格式化样式| 空间

和切换

其他| 在单行初始化程序括号内

这个例子是

int[] x = new int[] {0, 1, 2};
Run Code Online (Sandbox Code Playgroud)

int[] x = new int[] { 0, 1, 2 };
Run Code Online (Sandbox Code Playgroud)

虽然示例是数组初始化,但它似乎也控制对象初始化.


1 在R#5中,"代码编辑"是"语言".

  • 似乎此选项已从"其他"移至"围绕大括号" (3认同)
  • 似乎该选项已被重命名:`Spaces | 大括号周围 | 在单行表达式大括号内`或者直接将其添加到.DotSettings文件中:`<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES/@EntryValue">False</s:Boolean>` (2认同)

Fel*_*elk 7

如果您使用.editorconfig文件,则可以通过添加以下内容来控制此行为:

space_within_single_line_array_initializer_braces = true
Run Code Online (Sandbox Code Playgroud)

另请参阅 有关支持的 .editorconfig 条目的官方 resharper 文档。这些通常允许您自定义所有可以从所有 Jetbrains IDE 的格式样式菜单中自定义的内容。