如何阻止ReSharper在指定的变量和集合初始值设定项之间插入不必要的换行符

时间:2015-09-21 13:49:46

标签: c# resharper

鉴于集合超过ReSharper中的Right margin (columns)设置:

var list = new List<string> { "a", "lot", "of", "items" };

当我运行Cleanup Code时,它会将其重新格式化为:

var list =
    new List<string> {
        "a",
        "lot",
        "of",
        "items"
    };

理想情况下,我希望能够产生这个:

var list = new List<string> {
    "a",
    "lot",
    "of",
    "items"
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我假设您正在使用最新的ReSharper(10)。如果没有,您可以查找等效设置的措辞和位置。

试试这个:

  • 代码编辑&gt;&gt; C#&gt;&gt;格式化样式&gt;&gt;大括号布局&gt;&gt;大括号布局&gt;&gt;数组和对象初始值设定项(将其设置为&#34;在行尾(K&amp; R样式)&#34;)

  • 代码编辑&gt;&gt; C#&gt;&gt;格式化样式&gt;&gt;其他&gt;&gt;缩进&gt;&gt;连续线缩进倍数(将此值设置为1)

  • 代码编辑&gt;&gt; C#&gt;&gt;格式化样式&gt;&gt;其他&gt;&gt;对齐多行构造&gt;&gt;数组,对象和集合初始值设定项(UNCHECK此框)

  • 代码编辑&gt;&gt; C#&gt;&gt;格式化样式&gt;&gt;换行和换行&gt;&gt;线包装&gt;&gt;包装对象和集合初始化程序(设置为CHOP ALWAYS并为&#34执行相同操作;包装数组初始化程序&#34;如果您愿意)

  • 代码编辑&gt;&gt; C#&gt;&gt;格式化样式&gt;&gt;换行和换行&gt;&gt;线包装&gt;&gt;保留现有格式&gt;&gt;保留现有的换行符(UNCHECK此框)

我认为最后一个可能是踢球者。我怀疑Visual Studio中的默认格式设置是在赋值运算符之后导致换行,而ReSharper因为你检查了最后一个设置而没有修复它。

此外,从意见的角度来看,我强烈建议不要使用第一点来保持开口括号在同一条线上(K&amp; R风格)。 C#约定是使用BSD样式。 K&amp; R在JavaScript和其他各种语言中很流行,但是当以这种方式编写时,C#对大多数人来说并不合适。尽管如此,做你想做的事!

如果这对你不起作用,请告诉我,我会更多地研究它。