使用Resharper进行自定义括号格式化

79
我正在使用Resharper 4.5,需要在编写数组或对象初始化程序时自定义括号格式。Resharper支持一些样式: Gnu样式:
int[] array = new int[]  
                  {  
                      1, 2, 3  
                  }  

但我需要:

int[] array = new int[] 
{  
    1, 2, 3  
}  

有没有办法自定义这些模板?

5个回答

166
您可以自定义 ReSharper 进行以下操作(全部在 ReSharper -> Options -> C# -> Formatting Style 中):
  1. 括号布局中,将数组和对象初始化器设置为下一行(BSD 样式)
  2. 其他中,确保连续行缩进乘数设置为1
  3. 其他中,请确保未选中缩进数组、对象和集合初始化程序块
这样您就可以获得想要的格式。

1
不,这不是一个解决方案。这个设置不会将第一个大括号放在下一行。 - brianary
1
这需要一个步骤 4:在“其他”中,请确保未选中“缩进数组、对象和集合初始化器块”。 - brianary
1
请查看@mbx的答案以获取更近期版本的解决方案。 - Brk
1
在Resharper 8中,对于第三步,第一个单词“Indent”已被删除。因此,您需要查找“数组、对象和集合初始化块”,然后取消选中它。 - stricq
如果您喜欢这种 数组,对象和集合初始化器 的样式,那么还有一个选项是 匿名方法体,您可能也想取消选择它。 - Hein Andre Grønnestad
显示剩余3条评论

9
从R#7.1开始,一些选项属性已更改:
  1. 大括号布局中,将数组和对象初始化器设置为下一行 (BSD风格)
  2. 其他中,请确保将连续行缩进乘数设置为1,就像旧版本中一样。

而且:

  1. 其他中,在多行结构对齐上,确保未选中数组、对象和集合初始化器

2

谢谢提到这篇文章 :) - Igal Tabachnik

0

(继前面的回答@igal和@mbx)

从R#2017.1版本开始(以及可能是早期版本),请执行以下操作:

  1. 格式化样式 -> 大括号布局中,将数组和对象初始化程序设置为下一行(BSD样式)
  2. 格式化样式 -> 其他 -> 缩进中,请确保连续行缩进乘数设置为1
  3. 格式化样式 -> 其他 -> 对齐多行结构中,请确保数组、对象和集合初始化器未选中。如果符合相同的样式,您还可以取消选择匿名方法体

-4
据我所知,你不能这样做。Resharper带有预定义的样式,但是如果你创建自己的实时模板并将其设置为所需的方式,则可能会起作用。
希望这可以帮到你。

似乎你真的不能...Live Template 可以做其他事情,但对代码格式化没有影响。 - Hadi Eskandari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接