Resharper C#格式化样式在切断长行时在新行而不是同一行显示“新”

所以Resharper在我的代码中的“new”之前放置一个换行符,重新格式化如下:

var foo = new Foo { Bar = null, Baz = new Baz { Bap = null, Bork = null, Help = new PweaseHelp { Korben = null, Dallas = null, Multipass = null }, Me = new ClearlyMyAbilityToUnderstandResharperSettingsIs( null), } }; 

但我真的很喜欢这样做:

 var foo = new Foo { Bar = null, Baz = new Baz { Bap = null, Bork = null, Help = new PweaseHelp { Korben = null, Dallas = null, Multipass = null }, Me = new ClearlyMyAbilityToUnderstandResharperSettingsIs(null), } }; 

虽然我在我的.DotSettings文件中设置了所有设置但我无法解决导致它的问题,我已经钻研了…任何帮助都会非常感激:)

编辑2(更新)

以下R#设置似乎让我接近我列出的内容,除非你为“wrap invocation arguments”选择“chop always”,否则你仍然会看到之后的新行等于sign(带有列出的配置)和“包装对象和集合初始化程序”(由克里斯蒂安建议)。

“总是剁”的问题是你会有非常短的方法调用和对象/集合初始化器也一直在砍,这看起来很糟糕,所以我认为我们想要的是:

不要在方法调用/对象/集合初始化器的等号后面添加新行 (但我无法在任何地方找到该设置,因此它可能是R#的错误或function)。

我会尝试在R#论坛/支持上提出它并报告我的发现。

 False NEXT_LINE NEXT_LINE 1 TOGETHER_SAME_LINE True NEXT_LINE 1 1 True False True True CHOP_IF_LONG 150 CHOP_IF_LONG CHOP_IF_LONG 

如果您使用的是R#7.1,则可能是由于新的代码格式改进 。 在R#选项下可以轻松配置所有这些行为:

Resharper C#格式化风格

编辑:使用我的设置,我最接近您提出的解决方案是将Wrap对象和集合初始化器 始终设置为Chop ,但由于某种原因,它忽略了Braces布局下的“Array and object initializer”设置并放置在同一行打开大括号,如下所示:

 var foo = new Foo { Bar = null, Baz = new Baz { Bap = null, Bork = null, Help = new PweaseHelp { Korben = null, Dallas = null, Multipass = null }, Me = new ClearlyMyAbilityToUnderstandResharperSettingsIs(null), } }; 

它可能是我的一些其他设置导致这一点,但对我来说,这似乎是它的错误。 也许你应该联系ReSharper支持并让他们看看它……