VS2019中的插入新行设置似乎对对象、集合和数组初始化器不起作用。在其他情况下,它都可以工作,但对于这些类型,它不工作,例如。
// result:
int i = new int[] {};
// expected:
int i = new int[]
{
<cursor here>
};
我尝试了什么?
Text editor > C# > Code Style > Formatting > New Lines
检查了所有新行的选项
Resharper
将所有可能的新行选项设置为BSD风格(插入新行)。
.editorconfig
自动生成这个文件,试图覆盖另一个文件的某个地方(如果有的话)。csharp_new_line_before_open_brace = all
被设置在那里。
以上都没有用。我禁用了IntelliCode扩展名,并删除了.editorconfig,重启了VS,没有成功。这些解决方案似乎在某些情况下有效,但在我的设置中却没有。请注意,我禁用了自动完成关闭支架。
我是不是漏掉了什么明显的东西?
我可能需要跟你确认一下,你的意思是当你按括号里的 "回车",结果就会像这样
int[] i = new int[] {
};
而不是像预期的格式化?如果我误解你的意思,欢迎告诉我。
建议
如果是,根据我的测试,请再次检查你是否选择了这个选项。"在新行上放置对象、集合和数组初始化器的开放括号 "来自工具> 选项> 文本编辑> C#> 代码样式> 格式化> 新行> "在新行上放置对象、集合和数组初始化器的开放括号"。
此外。重置Visual Studio设置 会解决这个问题,并使设置为默认值,如果你在VS中没有改变或自定义一些其他设置,你可以考虑并尝试这样做。 (Tools > Import and Export Settings... > Reset all settings > choose "No, just reset settings, overwriting my current settings" > General > Finish)