在Visual Studio 2008中如何折叠选定的代码块?

25
在Visual Studio 2008中,我是否可以自定义折叠代码块,类似于我如何自动折叠评论块?
3个回答

47

您的代码段需要被包含在以下格式之一中:

  • 花括号
  • C# 中的 #region#endregion
  • C/C++ 中的 #pragma region#pragma endregion

如果您无法折叠语句块,则需要启用此功能:

工具 -> 选项 -> 文本编辑器 -> C/C++ -> 格式 -> 在 "大纲" 中勾选所有内容

(在 Visual Studio 2013 中,它是工具 -> 选项 -> 文本编辑器 -> C/C++ -> 视图)

然后,重新打开源文件以重新加载大纲。


嗯,它能工作,但不幸的是它基本上将整个代码块注释掉了。我想要能够折叠可用的代码。当我想要添加一个条件(if语句)来激活一大块代码而不将其放入函数中时,这尤其有用(因为它不能作为函数运行,所以我没有将其制作成函数)。 - Faken
这更像是添加新的if语句。我的程序中有太多的循环(我认为大约有10个嵌套循环+一堆其他的if语句),很难跟踪每个循环内部的内容。如何折叠循环和if语句? - Faken
我不确定你为什么认为它是注释掉了代码。你应该能够使用#pragma regions语句来创建可折叠的工作代码块。 - epotter

6

TheSam是正确的,你可以使用#pragma region和#pragma endregion语句创建可折叠的代码块。

以下是一个示例:

int main(array<System::String> args)
{


    Console::WriteLine(L"This");
    Console::WriteLine(L"is");
    Console::WriteLine(L"a");
    #pragma region
    Console::WriteLine(L"pragma");
    Console::WriteLine(L"region");
    #pragma endregion

    Console::WriteLine(L"test.");
    return 0;
}

在上面的示例中,样本之间的所有内容都可以折叠起来。
您还可以指定在折叠时显示的文本。您可以这样做:
#pragma region The displayed text

当该区域被折叠时,显然会显示“显示的文本”。

0

@Amjad-开发人员在问答中表明这只需要在源代码中进行快速修补即可与C++/C代码配合使用,很显然您只需要更改语言亲和属性。我仅在C#、JavaScript和PHP方面使用VisStudio,因此尚未尝试过它。 扩展的源代码链接在这里: https://github.com/Skybladev2/C--outline-for-Visual-Studio - Martin Sansone - MiOEE

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