为什么 #region 指令无法自动格式化?

3
我注意到C#代码中的#region#endregion指令的缩进行为不再与我的代码一起缩进。在Visual Studio(2013)中,它们总是被推到行的第一列。这不是它应该运作的方式,并且似乎我已经在我的Visual Studio中做了一些事情来使其发生(在工作中,它的行为如旧,区域会随着代码一起缩进)。我安装了ReSharper,但似乎在其设置中找不到任何可能导致此问题的内容,也不知道如何运行不使用它。请问这可能与什么设置或bug相关?

值得注意的是,手动运行内置的“格式化选择”功能是正确的,因此这里出现问题的是在输入时自动格式化的功能。 - thehan83
不确定这是否属于离题或只是个人观点之类的,但我仍然会发表评论。如果不合适,请告诉我,我在这里还很新。你真的需要区域块吗?对于导航代码文件来说,当然可以使用,但有更简单的方法。然而,如果您的类非常庞大,以至于它需要IDE技巧来压缩代码以便阅读,也许现在是将其分成处理各自职责的单独类的时候了,而不是把所有东西都放在一个区域块下面。我提出这个建议是出于建设性意图,并且我知道这完全是主观的/宗教的等等。(两年没有区域块) - James Lucas
1
是的,这有点主观和离题了。我知道很多人讨厌区域,但我不是其中之一。此外,我正在针对一个编码标准进行工作,该标准要求使用它们来构建代码结构(而不是隐藏糟糕的代码或臃肿的类,因为我的类往往只承担一个职责)。 - thehan83
我之前注意到了这个问题,但一直没有深入研究。只有在使用自动完成时才会发生这种情况。如果我完全手动输入 #region#endregion,当我键入 "n" 时它会自动缩进。我知道在其他版本的VS中它是可以正常工作的,因为我并没有改变我的打字方式。 - DanCaveman
1个回答

4

在Visual Studio 2013中,如果您的项目出现语法错误,将导致区域的自动缩进无法正常工作。一旦您修复了这些错误,区域应该会再次正常缩进。


分享您代码中的哪个错误会更有帮助。即使原帖作者没有遇到相同的错误,它也可能导致类似或相关的错误。 - OhBeWise
这只是 Visual Studio 中的一般错误。我猜测错误会导致 #region 指令的自动格式化失败。 - MC10
有趣。你是否尝试引入其他错误来测试一下呢?那将会非常有趣 - 尽管我实在不知道为什么会导致这样的问题!也许其他人可以给我们启示。 - OhBeWise
2
我在我的代码中放了一行无意义的随机文本以获取错误。然后新创建的区域将不会缩进。我将其删除,它就会缩进它们。 - MC10
1
我相信它回答了这个问题。#regions的自动缩进是Visual Studio的一个功能。只要在您正在工作的当前文档中出现错误,Visual Studio就会停止执行此操作。当我说错误时,我指的是Visual Studio中的任何明显错误。另外,我刚刚稍微整理了一下我的问题。希望现在更容易理解了。 - MC10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接