【问题标题】:Visual Studio 2019 closing curly brace not under the opening brace (it's fully left aligned instead)Visual Studio 2019 右大括号不在左大括号下方(而是完全左对齐)
【发布时间】:2020-01-30 20:40:38
【问题描述】:

最近右大括号开始在完全左侧对齐,而不是在左大括号下方,但仅当大括号为空时:

(我在 Visual Studio 2019 中,使用 C# 代码) 步骤:

写这个:

namespace myNameSpace
{
    class myClass
    { }
}

然后在类大括号之间按回车键,它这样做了:

namespace myNameSpace
{
    class myClass
    { 
 }
}

注意类右大括号不在左大括号之下。

我怎样才能有这个,格式选项在哪里?

namespace myNameSpace
{
    class myClass
    { 
    }
}

谢谢,

【问题讨论】:

  • 我在 VS2019 中尝试过,无法重现您的问题。我得到了所需的大括号对齐方式。 (内部右大括号后有或没有分号!)
  • 嗨罗宾。对于那些对您投反对票并将问题标记为“应该关闭”而没有给您任何解释的人,我深表歉意。这是不应该的。我认为这是一个非常合理的问题。我投票支持你,并提供了我希望是一个有用的答案。
  • Ctrl E+D 将格式化整个文档。
  • @Robin 你在使用任何扩展吗?
  • 您可能需要阅读一些内容才能深入了解... docs.microsoft.com/en-us/visualstudio/ide/… 这是自定义 .editorconfig 的一种方法 docs.microsoft.com/en-us/visualstudio/ide/…

标签: c# visual-studio code-formatting visual-studio-2019 curly-braces


【解决方案1】:

我以前在各种版本的 VS 中都看到过这种情况。这并不是真正可重现的,但有时出于无法解释的原因,VS 只是开始以这种方式行事。

有几种方法可以处理这个问题。快速解决方法是点击

ctrl+k+d

这将自动对齐打开文件上的所有代码(和 cmets)。虽然这会在事后修复未对齐的括号,但它不会阻止 VS 仍然这样做。

如果它变得太烦人(它可以!)那么你可以做的是ctrl+a 来复制所有内容。然后将其粘贴到文本文件中(这样您就不会意外丢失它)。从项目中删除文件。然后,从工作文件夹中删除实际文件。关闭并重新打开 VS。然后重新创建文件并将所有内容粘贴回其中。

应该解决问题。

【讨论】:

  • 听起来像是使 VS 成为如此出色的 IDE 的那些特殊功能之一!
  • @Adrian 是的,完全正确!我不经常看到它,但是当它弹出时,它非常令人烦恼。我一边执行上述步骤,一边低声咒骂。
  • Stack Overflow 是一个可以快速解决问题的好地方(因此可以避免大量的自残和拉扯头发)。不要理解这里一些喜欢否决和/或关闭此类问题的人的态度。有时很部落?
  • @Adrian,同意。这里有很多恶意用户拒绝投票,这是可悲的。这应该是“让我们互相帮助!”社区。​​span>
  • @CaseyCrookston..有时它是有保证的......但是当你得到反对票时......它很聪明。我因提问而被禁赛 9 个月。当我现在需要答案时,我几乎咬牙切齿
【解决方案2】:

缩进和支撑样式往往是宗教问题。当您从一个团队转移到另一个团队时,您最终不得不学习当地的大括号/缩进样式。有一篇完整的维基百科文章 (https://en.wikipedia.org/wiki/Indentation_style)。

在 Visual Studio 中,您可以设置自己喜欢的大括号/缩进样式。我的猜测是你的支撑/缩进被破坏了,需要重新设置。

到达那里:

Tools ->> Options ->> Text Editor ->> C# ->> Code Style ->> Formatting ->> Indentation

一旦您到达那里,如果事情是您想要的方式,请在确定退出对话框之前将它们更改为其他内容。然后再做一次并改回来。如果它们与您想要的样式不匹配,只需进行更改(想法是 - 您需要进行更改以便保存更改)。

祝你好运

【讨论】:

  • 好建议...关键是先进行更改,然后再改回来。
【解决方案3】:

好的,它出现了,但我可能错了,智能标签管理最近发生了变化,现在它不再在块中第二个空行的开头插入标签(就像其他一些代码编辑器一样)。因此在第二行只留下一个空格,导致我的“问题”。

我总是对所有语言使用 智能制表符缩进,但最近它似乎发生了变化,然后导致了这种情况。 所以解决方案对我来说是回到 Block Indenting 并且效果很好。我不知道可能会导致什么其他差异,但是......

注意:这只有在使用保留标签选项时才会发生

谢谢大家,你们的 cmets 让我找到了一个解决方案(或者至少是一个变通方法)。

【讨论】:

    【解决方案4】:

    在 Visual Studio 2019 中默认关闭键入时自动格式化。要自动格式化代码,请转到 工具 -> 选项 -> 文本编辑器 -> C# -> 代码样式 ->格式化并选择选项键入时自动格式化,然后选择您的偏好,以了解何时触发自动格式化。示例截图:

    Auto-format option in Visual Studio 2019

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多