【问题标题】:Visual Studio 2017 auto formatting single line if statements without bracesVisual Studio 2017 自动格式化单行 if 语句,不带大括号
【发布时间】:2018-04-10 17:56:08
【问题描述】:

当它们简洁且语义清晰时,我总是以以下样式编写简单的一行 if 语句(人为示例):

foreach (var item in list)
{
    if (item == null) continue;

    // ...
}

然而,从 VS2017 的某些版本开始,现在坚持将上述内容变为:

foreach (var item in list)
{
    if (item == null)
        continue;

    // ...
}

我不喜欢后者(是的,我知道有些人会不喜欢我真正确实想要的样式),并且每次我复制和粘贴代码时它都会自动重新格式化。我快要完全关闭格式化以防止这种情况发生,但是有人知道是否有一个切换按钮可以改变它而不会对其他一切产生负面影响吗?我已经浏览了所有听起来相关的选项,但没有运气。 VS2013+ 一直支持这种风格,如果我没记错的话,它甚至在 VS2017 刚出来的时候就可以使用。

更改“离开语句和成员声明在同一行”选项无效。

【问题讨论】:

  • 我尝试了上述答案中提到的区域中的两种设置,似乎上面提到的选项/答案是您所描述行为的控制因素。
  • @GreggL 感谢您的回复。我之前确实找到了那个问题/答案,但是为我检查了建议的选项,它仍在将事情转移到两行。可能这里有一些设置组合?

标签: visual-studio if-statement ide visual-studio-2017 autoformatting


【解决方案1】:

经过更多挖掘后发现解决方案中有一个.editorconfig 文件。显然,这会默默地覆盖 VS 选项对话框中的全局设置。我打算删除这个问题,但也许这对将来的其他人有用。

【讨论】:

  • 啊,很好的发现。由于 .editorconfig 文件不是由 VS 自动生成的(据我所知),你的是如何创建的?
  • @GreggL 一位在 MacOS 上工作的开发人员在 5 个月前提交了它。受苦已久。感谢您的帮助。
【解决方案2】:

.editorconfig文件中,设置"csharp_preserve_single_line_statements = true"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多