当编辑真正长的代码块时(无论如何它肯定会被重构,但这超出了这个问题的范围),我经常渴望能够折叠语句块,就像可以折叠功能块一样.也就是说,如果在括号中包含的所有内容的代码轮廓上出现减号图标,那将会很棒.它似乎出现在函数,类,区域,命名空间和使用中,但不适用于条件或迭代块.如果我可以崩溃像ifs,switch,foreaches这样的东西,那将是太棒了!
谷歌搜索到这一点,我发现显然在VS中的C++概述允许这样但在VS中的C#概述却没有.我真的不明白为什么.如果我选择C#格式化,即使是notepad ++也会崩溃,所以我不明白为什么Visual Studio没有.
有没有人知道VS2008加载项会启用此行为?或者某种隐藏的设置呢?
编辑添加:插入区域当然是一个选项,它确实已经发生在我身上,但坦率地说,我不应该把事情包裹在已经用括号括起来的区域......如果我要编辑现有的代码,我只是重构它,以便更好地分离关注点.(用新方法代替区域"包装";)
从Visual Studio 2017开始,语句折叠是内置的.
从VS 2010版本开始,有几个扩展可以为2017年之前的VS版本执行此任务:
C#大纲
C#outline 2012(@MSDN)
C#outline 2013(@MSDN)
C#outline 2015(@MSDN)
Visual Basic和C#Outliner
最后一个扩展只支持VS 2015和VS 2017,但它是最强大的.
它支持折叠块内的语法着色,它更具容错性和优化性.
如果在使用浏览器下载扩展后似乎没有安装扩展,请尝试使用内置的Visual Studio扩展管理器.
我不知道加载项,但你提到了区域,我认为做这样的事情并没有错...
foreach (Item i in Items) { #region something big happening here ... #endregion #region something big happening here too ... #endregion #region something big happening here also ... #endregion }
编辑:回答问题的编辑:你是对的,到处都是一堆地区并不理想,重构可能就是要走的路.但似乎你正在寻找一些神奇的东西来为你"组织"代码,我认为不存在.
您可以在visual studio中折叠特定的文本块,但必须关闭自动轮廓.
右键单击代码窗口并选择(Outlining | Stop Outlining)
然后,选择一些文本,右键单击并选择(概述|隐藏选择)
当您再次打开自动大纲时,您的自定义"区域"将不再崩溃.